0

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

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

4

2 回答 2

2

我最近遇到了同样的问题,这就是我设法克服它的方法。我被引导相信您不能将类添加到隐藏字段,因为它是隐藏的,因此不需要它,因此您将 a 包裹<span class="hiddenfield"></span> 在 gridview 中的隐藏字段周围。然后,您可以定位跨度的类,然后是 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());

这是我的第一个答案,所以我希望这会有所帮助,也就是说,如果它尚未排序。

于 2013-10-22T14:45:44.620 回答
0

您可以为隐藏字段分配一个类,并将其用作选择器,而不是使用 ID 进行搜索。ID 将不起作用,因为渲染时间将向隐藏字段分配不同的自动生成 ID,如下所示:

<input type="hidden" value="0" id="clt100_clt100_29042034982304_key" />
于 2013-09-09T08:07:18.357 回答