2009-10-07 70 views
0

我在.ascx上有一個GridView。我在一個列的標題模板中有一個asp:Checkbox CheckAll複選框,然後在ItemTemplate中有一個複選框。我想添加這樣的功能,當我檢查Header中的複選框時,它將檢查或取消選中GridView中的所有複選框。GridView中的JQuery CheckAll

如何使用JQuery執行此操作?然後我想添加反向功能,這樣當我取消選中GridView中的複選框時,它將取消選中Header中的複選框。

回答

1

您可以使用複選框'CheckAll'ID和行的類來玩。例如,您可以擁有一個控件ID「chkSelectAllNone」(注意,這會在客戶端更改爲'Ctl001_chkSelectAllNone'之類的東西),您可以使用css類「select-row」分配行類, 。

然後,創建在ASPX一個jQuery腳本(或從後面的代碼寫它)來處理切換選擇全部/無,像這樣的:

$("#<%= chkSelectAllNone.ClientID %>").click(function(){ 
$(".select-row").attr("checked", $("#<%= chkSelectAllNone.ClientID %>").attr("checked")); 
}); 

希望它能幫助。

+0

威爾<%= chkSelectAllNone.ClientID%>這真的返回客戶端ID,因爲這個控制是GridView的HeaderTemplate並沒有在GridView之外聲明? – Adam 2009-10-07 14:00:00

+0

這裏的事實是,您需要該複選框的客戶端ID來綁定click事件並執行javascript。把這個字符串轉換成任何給你的客戶端控件ID。 – Sebastian 2009-10-07 15:12:52

0

我不知道如果GridView的渲染th,但如果他們這樣做應該讓你關閉:

$("th :radio").click(function() { 
    if($(this).is(":checked")) { 
    $("td :radio").attr("checked", "checked"); 
    } 
}); 

$("td :radio").click(function() { 
    var attr = $("td :radio").not(":checked").length ? "" : "checked"; 
    $("th :radio").attr("checked", attr); 
});