2014-02-27 59 views
0

我在ASP.Net页面中有一个GridView,其ID为GridView1,其中第一列有一个复选框。示例代码如下。请确保在GridView中至少选中了一个记录复选框

当我点击一个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

更好地在您的ItemTe中为您的复选框使用一个类mplate。现在我将在两种情况下给出解决方案。

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

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

如果你已经两个GridView控件(grdMyGrid)和复选框( “chkMyCheckBox”)应用类。

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

这是非常简单和推荐的方法。您可以在IF子句中使用上述语句,或者将结果赋给变量以备后用。

+0

第一个表达式会引发错误。它应该是$('#<%= GridView1.ClientID%> input [type =“checkbox”]:checked')。length。不需要添加JavaScript连接操作符,因为客户端的服务器端标记将在运行时自动替换。 – Sunil

+0

谢谢指出:) –

1

你可以在GridView1所有checkboxes,然后检查其包含的任何检查元素:

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

你也可以尝试让所有选中的元素,然后去length

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