我有一个 KendoUI 网格,其中包含 ObservableArray 中的数据。
var aKendoObservableArray = new kendo.data.ObservableArray([ .....]);
// defining the grid ....
dataSource: {
data: aKendoObservableArray,
pageSize: 10,
schema: {
model: {
id: "_jobInstanceId" // the identifier of the model
}
}
},
既然我已经从服务器获得了新数据,我想替换这个数组的内容。我试过将数组拼接清空,再一个一个添加新的内容。这会导致巨大的性能下降,因为剑道尝试在每次添加时确定如何对网格进行分页。有没有一种方法可以用仅触发一次的更改事件替换 Kendo UI ObservableArray 的内容?
最佳答案
KendoUI 论坛有这个问题的答案。我们需要清理数组(触发一个删除事件)并一次推送所有元素(触发一个添加事件)
http://www.telerik.com/forums/passing-array-to-observablearray-push
因此,我需要的是
// clean the array
aKendoObservableArray.splice(0, aKendoObservableArray.length);
aKendoObservableArray.push.apply(aKendoObservableArray, [{...},{...},{...},{...},{...}];
关于javascript - 在不触发事件的情况下替换 Kendo ObservableArray 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26854743/