在slickgrid中更新dataview中的多行

时间:2013-08-27 14:33:24

标签: updates slickgrid dataview

我正在使用以下方法更新slickgrid:dataView.updateItem(args.item.id,row); 但是我有很多行要同时更新。那么如何在slickgrid中更新dataview中的行数组?

2 个答案:

答案 0 :(得分:3)

我认为您的目标是在更新多行时阻止UI更新(代价高昂):

function updateItems (itemsToUpdate) {
  dataView.beginUpdate(); // tell your DataView to prevent re-rendering the SlickGrid on every change
  itemsToUpdate.forEach(function(item){ // iterate over each item in the array
    dataView.updateItem(item.id, item) // update the item's data
  });
  dataView.endUpdate(); // tell DataView to re-render the SlickGrid with any changes
}

答案 1 :(得分:1)

您可以按如下方式使用dataView.setItems(data)

让我们说你有一个你在光滑网格中绑定的对象数组

var data = [
  {'id': 'l1', 'lang': 'Java'},
  {'id': 'l2', 'lang': 'JavaScript'},
  {'id': 'l3', 'lang': 'C#'},
  {'id': 'l4', 'lang': 'Python'}
           ];

然后,您可以按如下方式在阵列中推送所需的项目

data.push({
    "id" : "l5",
    "lang" : ".net"
});

然后使用'dataView.setItems()'你可以更新你的网格

// This will fire the change events and update the grid.
dataView.setItems(data);

OR

// You can populate the dataview with new array list if you have any
dataView.setItems(newArray);