确保在GridView中选中至少一个记录复选框

时间:2014-02-27 17:10:53

标签: jquery asp.net

我在ASP.Net页面中有一个GridView,其ID为GridView1,我在第一列中有一个复选框。示例代码如下。

当我点击id为btnSubmit的按钮时,我想确保在gridview中至少选中了一个复选框。

我如何使用jQuery执行此操作?

<asp:GridView ID="GridView1" runat="server">
<Columns>
  <asp:TemplateField>
   <HeaderStyle HorizontalAlign="Left" />
   <HeaderTemplate>
   <asp:CheckBox ID="chkSelectAll" ToolTip="Click here to select/deselect all rows" runat="server" />
   </HeaderTemplate>
   <ItemTemplate>
    <asp:CheckBox ID="chkSelect" runat="server" EnableViewState="true" />
   </ItemTemplate>
  </asp:TemplateField>
  //other columns follow
</Columns>
</asp:GridView>
<asp:Button id="btnSubmit" runat="server> />

2 个答案:

答案 0 :(得分:2)

最好在ItemTemplate中使用类的复选框。现在我将在两种情况下给出解决方案。

这将为您提供如果选中至少1复选框的信息。但这是一种通用方式。如果你在外部JS文件中编写这个JS,那么最好为gridview添加一个类。

$('#<%= GridView1.ClientID%> input[type="checkbox"]:checked').length>0

如果您已为GridView控件(grdMyGrid)和复选框(“chkMyCheckBox”)应用了类。

$('.grdMyGrid .chkMyCheckBox:checked').length>0

这是更简单和推荐的方式。您可以在IF子句中使用上述语句,或将结果分配给变量以供以后使用。

答案 1 :(得分:1)

您可以在checkboxes中获取所有GridView1,然后检查其是否包含任何已检查的元素:

var hasAnyChecked = $("#GridView1 input[type = checkbox]").is(":checked")

您也可以尝试获取所有选中的元素,然后转到 length

var hasAnyChecked = $("#GridView1 input[type = checkbox]:checked").length != 0