[英]Kendo Grid: Select All Checkbox in Header Stops Working After .read()
使用特定的搜索過濾器后,我會顯示兩個Kendo網格。 最終用戶可以調整搜索過濾器並重新加載數據源。 我通過檢查網格是否存在以及是否已經存在來執行此操作-執行grid.read()操作(而不是重新加載整個網格)。
此檢查和加載按預期方式工作。 通過單擊該行來選擇每個單獨的行,或者通過選中復選框來選擇多個行(或使用單擊/拖動方法)的功能可以正常工作(在read()之前和之后)。 但是,全選復選框(位於標題中)在read()之后停止正常運行。
我已經在此處編輯了代碼並將其添加到小提琴中,很抱歉,它不可運行(我無法刪除足夠的數據源信息以僅顯示網格)。
“全選”復選框適用於網格的初始加載。 我試圖將.change事件還添加到調用read()的else語句中,以為可能不是在捕獲更改事件-但這沒有幫助。
$('#selectAllCheckbox').change(function () {
onSelectAll();
})
在read()之后,單擊“全選”復選框-該框本身不顯示選中標記-並且未選擇表上的多行。
function onSelectAll() {
var checked = ($('#selectAllCheckbox')[0].checked)
$('.checkbox').each(function (idx, item) {
if (checked) {
if (!($(item).closest('tr').is('.k-state-selected'))) {
$(item).click();
}
} else {
if ($(item).closest('tr').is('.k-state-selected')) {
$(item).click();
}
}
});
setIsChecked();
};
編輯:
從Kendo的演示開始,我能夠更好地復制我的問題,然后添加我的代碼的每一部分,直到它破裂為止。 在嘗試將全選標頭復選框功能與多選功能(具有dataBound事件)結合使用時,我能夠確定問題是否發生了,我需要這兩個功能一起工作。
在這里查看示例:
請注意,標題復選框正常工作,直到啟用了網格功能(例如列排序),然后它將停止“檢查”。 每單擊一次該功能,它將起作用。
好像“檢查”標題復選框的功能已打開和關閉。
$('#selectAllCheckbox').on('click',function(){ if ($(this).prop('checked') == true) { $('.checkbox').prop('checked',true); }else { $('.checkbox').prop('checked',false); } });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="checkbox" id="selectAllCheckbox"> check all <hr> <ol> <li><label><input type="checkbox" class="checkbox"> checkbox [1]<label></li> <li><label><input type="checkbox" class="checkbox"> checkbox [2]<label></li> <li><label><input type="checkbox" class="checkbox"> checkbox [3]<label></li> <li><label><input type="checkbox" class="checkbox"> checkbox [4]<label></li> </ol>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.