**將小提琴更新爲新位置 - 與之前的代碼相同**
嘗試直接處理數據。勾選該行的ID並過濾該複選框。
我鏈接了一個小提琴,它刪除數組元素,然後重新創建網格。網格頂部的2個文本框捕獲您想要移除的Ids的範圍(這將與您的checkboxIds的數組相同)。然後,我通過這些「刪除Ids」進行循環,將它們從數據陣列中移除並重新映射網格。
我稍微修改了以前的小提琴,這就是爲什麼我重新創建網格而不是直接處理DataSource對象。但是我希望你能明白我在做什麼。
我在這個例子中有1000條記錄(只有3列),但它很快刪除了950條記錄。
Fiddle- Remove from data array
讓我知道如果你需要用KendoUI DataSource對象的一個例子。
我在下面包含了這段代碼,因爲StackOverflow不會讓我發佈它。
function filterData() {
var val1 = $("#val1").val();
var val2 = $("#val2").val();
var removeIndexes = new Array();
for (var i = val1; i <= val2; i++) {
removeIndexes.push(i);
}
$(removeIndexes).each(function(removeIndex) {
var removeItemId = this;
$(randomData).each(function(dataIndex) {
var continueLoop = true;
if (this.Id == removeItemId) {
randomData.splice(dataIndex, 1);
continueLoop = false;
}
return continueLoop;
});
});
createGrid();
}
非常感謝您的幫助!我對延遲迴復表示歉意。我在網格中有很多列,而且重新創建網格太慢了。我只在頁面加載期間創建一次。但是,你的回答指向了正確的方向。我只是按照您的建議更改數據存儲數據,但刷新網格而不是重新創建。此外,網格中的對象很複雜,大約有50個道具。拼接太慢(我猜是因爲複雜的物體?)。相反,我只是創建了一個新的數據陣列,只推送沒有檢查過的ID的項目。再次感謝你的幫助。 – James
嗨,我已經嘗試過你的代碼。但是,當數據超過70行時,它會使瀏覽器變慢,並顯示無響應的腳本警告。有沒有在解決方案,以提高加載時間.. – Razack
你能請更新小提琴?我真的需要它。 –