Performance 剑道UI网格-删除行需要很长时间
我正在我的HTML页面中开发一个剑道网格,它从后端服务获得大约500多条记录。 我为每一行创建了一个复选框,当我选中该复选框时,它将选中该行。 当我使用下面的代码删除行时,每次删除记录大约需要8秒钟Performance 剑道UI网格-删除行需要很长时间,performance,kendo-grid,Performance,Kendo Grid,我正在我的HTML页面中开发一个剑道网格,它从后端服务获得大约500多条记录。 我为每一行创建了一个复选框,当我选中该复选框时,它将选中该行。 当我使用下面的代码删除行时,每次删除记录大约需要8秒钟 var _gridData = grid.dataSource.data(); var len = _gridData.length; while (len--) { if (_gridData[len].check_row == true)
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条记录)时删除要花更少的时间吗
谢谢
Anil听起来你好像有逻辑问题,我不会在整个数据列表中循环查找复选框。我会在网格中找到所有复选框,并使用jquery进行检查,这比循环所有数据要快得多,然后获取数据项并将其从数据源中删除
$("#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 );
});
注意:此未测试的代码可能存在语法问题
要使数据项正常工作,必须在数据源中定义一个模型谢谢。。我尝试使用$。每个网格选择的行如下所示。但从数据源中删除每条记录仍然需要8秒$grid tr.k-state-selected.eachfunction e{//remove the row}您可能需要将批处理设置为true,这样它将一次发送所有请求。它的批次:真的