1

我在 c# 的 gridview 中有一个复选框模板字段,该字段还有一个隐藏字段,其后面有 id。我想使用 jQuery 在单击复选框时引发事件以获取数据键值,以便我可以通过 jQuery 运行查询并将选中的项目添加到数据库中。我已经看到了在单击整体按钮时获取数据键的示例,但我希望在网格视图中单击的每个复选框上都发生这种情况。我目前在尝试访问 id 时得到“未定义”。

网格视图中的 C#

<ItemTemplate>
     <asp:CheckBox ID="CheckBox" CssClass="checkbox" runat="server" />
     <asp:HiddenField ID="idnum" runat="server" Value='<%# Eval("id") %>' />
</ItemTemplate>

jQuery

$(document).ready(function () {
           var gridResults = document.getElementById('<%= grdResults.ClientID %>');

           $("form input:checkbox").click(function (e) {
                   var id = $(this).next('#idnum').val();
                   alert(id);
                   return false;                                        
           });
}); 
4

2 回答 2

1

如果有多个字段,ID="idnum"您可能应该将其更改为class="idnum". 添加类后,您可以使用以下方法获取值:

var gridResults = $(e.target).next('.idnum').val();

如果idnum只是每个字段不同的示例,您可以使用var id = $('#idnum').val();

编辑:更改e.target.next('.idnum').val();$(e.target).next('.idnum').val();将元素转换为 jQuery 对象

于 2012-06-08T12:54:22.233 回答
0

//这是在 GridView 中的复选框检查事件上获取 datakeyname 值的脚本

<script type="text/jscript">
        $(document).ready(function () {
            var gridResults = document.getElementById('<%= grdCateogry.ClientID %>');

            $("form input:checkbox").click(function (e) {
                var id = $(this).next($('#IDVal')).val();
                alert(id);
                return false;
            });
        });
    </script>

//这是GridView

<asp:GridView ID="grdCateogry" DataKeyNames="CategoryId" runat="server">
    <Columns>
      <asp:TemplateField HeaderText ="Try" ItemStyle-Width="20px">
         <ItemTemplate>
           <asp:CheckBox ID="chkSelect" runat="server" />   
           <asp:HiddenField ID="IDVal" runat="server" Value='<%# Eval("CategoryId") %>' />
          </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

于 2014-12-30T12:53:35.287 回答