javascript - 将 ID 从 GridView 行传递到 Javascript 函数

标签 javascript asp.net gridview

下面的第一个注释行使用的是硬编码的 ApplicantId,我需要的只是通过在同一网格行上传递当前 ApplicantId 列来使其工作。

我已经尝试了很多天了,但像第二行注释这样的东西对我不起作用。 请帮忙。

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
DataKeyNames="ApplicantID" >
<Columns>

<asp:TemplateField HeaderText="Select">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>

<!-- works -->
<asp:HyperLinkField NavigateUrl="javascript:popUp(3)" Text="Select" Target="_parent"/>

<!-- doesn't work -->
<asp:HyperLinkField NavigateUrl='"javascript:popUp("<%# + DataBinder.Eval(GridView1.DataItem,"ApplicantId") %> + ")"' Text="View" />

</Columns>
</asp:GridView>

最佳答案

令人沮丧的是,在尝试生成 javascript Url 时,我从未能够让 HyperLinkField 合理地输出。但是,以下内容对您有用:

<asp:TemplateField>
    <ItemTemplate>
        <asp:HyperLink runat="server" 
          NavigateUrl='<%# "javascript:popUp(" + Eval("ApplicantId") + ")" %>'
          Text="View">
        </asp:HyperLink>
    </ItemTemplate>
</asp:TemplateField>

当您不生成 javascript Url 时,可能值得记住的一件事是 DataNavigateUrlFieldsDataNavigateUrlFormatString 属性,因为它们允许您将以更简洁的方式设置网址:

<!-- Doesn't work due to "javascript:" target -->
<asp:HyperLinkField Text="View" DataNavigateUrlFields="ApplicantId"
     DataNavigateUrlFormatString="javascript:popUp({0})" />
<!-- Does work as targeting a "http://" target -->
<asp:HyperLinkField Text="View 2" DataNavigateUrlFields="ApplicantId" 
     DataNavigateUrlFormatString="http://localhost/popUp/{0}/" />

关于javascript - 将 ID 从 GridView 行传递到 Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3639056/

相关文章:

c# - 操作过滤器属性无法与 Hub 类一起正常工作

asp.net - vb.net TextBox 提交不改变

Android Espresso 测试卡在 perform(click());

javascript - 循环内的setTimeout,停止脚本工作

javascript - 我希望我的导航点在事件时改变

c# - IndexOf() 方法始终返回 -1

c# - 如何在 GridView 中获取单元格值(不使用单元格索引)

javascript - 将输入附加到 HTML 表单而 JQuery 不起作用

javascript - d3.js 投影比例不会增加一个国家的大小

asp.net - 我无法点击 ASP :Button if it is hidden using jQuery?