我正在HTML页面中开发一个kendo网格,它从后端服务获得大约500多条记录。 我为每一行创建了一个复选框,当我选中复选框时,它会选择该行。 当我使用下面的代码删除行时,每次删除记录大约需要8秒。
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 :(得分: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运行良好,必须在dataSource中定义模型