2014-02-27 101 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 
相關問題