2014-09-25 61 views
0

我在我的HTML頁面中開發了一個kendo網格,它從後端服務中獲取了大約500多條記錄。 我爲每一行創建了一個複選框,當我選中複選框時,它會選擇該行。 使用下面的代碼刪除行時,每次刪除記錄大約需要8秒。Kendo UI Grid - 刪除需要很長時間的行

var _gridData = grid.dataSource.data(); 
     var len = _gridData.length; 
     while (len--) { 
      if (_gridData[len].check_row == true) { // row has the checkbox ticked 
       grid.dataSource.remove(_gridData[len]); 
      } 
     } 

你可以讓我知道爲什麼它正在採取更多的時間來刪除的時候,我們有更多的記錄說(400+),並採取當我們少記錄說10-20更少的時間?

感謝 阿尼爾

回答

0

聽起來像是你有一個邏輯的問題,我不會遍歷整個數據列表中找到選中的複選框。我會發現所有的複選框中使用jquery進行檢查(真的比循環所有數據快),然後獲取數據項並將其從dataSource中移除。

$("#grid").find('input:checkbox:checked').each(function(index,elem){ 
var tr=$(elem).closest("tr"); 
var grid=$("#grid").data("kendoGrid"); 
var dataItem = grid.dataItem(tr); 
grid.dataSource.remove(dataItem); 
}); 

注:此代碼這個沒有測試可能有語法問題..

的DataItem的運作良好,有必要在你的數據源定義模型

+0

謝謝..我試着使用$。每個網格選定的行如下。但仍然需要8秒才能從dataSource中刪除每條記錄。 '(「#grid tr.k-state-selected」)。each(function(e){// remove the row}' – 2014-09-29 17:20:24

+0

您可能需要啓用批處理爲true,因此它會一次發送所有請求。「batch:true」http://docs.telerik.com/kendo-ui/api/javascript/data/datasource#configuration-batch – cwishva 2014-09-30 04:01:55