选中复选框时,使用jquery获取datagrid值

时间:2012-06-08 12:46:00

标签: c# jquery gridview checkbox datakey

我在c#的gridview中有一个复选框模板字段,此字段还有一个隐藏字段,后面有id。我想使用jQuery在单击复选框时引发事件以获取datakey值,这样我就可以通过jQuery运行查询并将选中的项添加到数据库中。我已经看到了在单击整个按钮时获取datakeys的示例,但我希望在gridview中单击的每个复选框上执行此操作。在尝试访问id时,我目前得到“未定义”。

gridview中的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;                                        
           });
}); 

2 个答案:

答案 0 :(得分: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对象

答案 1 :(得分: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>