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