在Gridview中获取jQuery中的隐藏字段值

时间:2013-09-09 07:35:48

标签: javascript jquery .net gridview hidden-field

我需要使用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>

当我点击链接时,我应该得到值。现在没有回应。我哪里错了?

2 个答案:

答案 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" />