我需要使用jQuery获取gridview中隐藏字段的值。我已经尝试但它对我不起作用。
//代码:
<script type="text/javascript">
$(document).ready(function () {
$("table[id*='<%=grdTest.ClientID %>]' a[id*=getID]").click(function () {
alert($(this).closest("tr").find("input[type=hidden][id*=key]").val());
});
});
</script>
<asp:GridView ID="grdTest" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:HiddenField ID="key" runat="server" Value='<%#Eval("ID") %>'> </asp:HiddenField>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Select">
<ItemTemplate>
<a href="#" id="getID">Click</a>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
当我点击链接时,我应该得到值。现在没有回应。我哪里错了?
答案 0 :(得分:2)
我最近遇到了同样的问题,这就是我设法克服它的方法。我被引导相信你不能将一个类添加到隐藏字段,因为它不需要它,因为它是隐藏的,所以你在gridview中的隐藏字段周围包裹一个<span class="hiddenfield"></span>
。然后,您可以定位span的类,然后在jquery中输入。所以你的代码看起来如下:
<asp:TemplateField>
<ItemTemplate>
<span class="hiddenfield">
<asp:HiddenField ID="key" runat="server" Value='<%#Eval("ID") %>'> </asp:HiddenField>
</span>
</ItemTemplate>
</asp:TemplateField>
alert($(this).closest("tr").find(".hiddenfield input").val());
这是我的第一个答案,所以我希望这会有所帮助,即如果它尚未排序。
答案 1 :(得分:0)
您可以将类分配给隐藏字段,并将其用作选择器,而不是使用ID进行搜索。 ID将不会作为渲染时间,将不同的自动生成ID分配给隐藏字段,如下所示:
<input type="hidden" value="0" id="clt100_clt100_29042034982304_key" />