直接用for循环遍历删除行的时候,会刷新页面上的行的index,index会发生改变,你原来rows的数据也会发生改变,会导致删除失败,如以下的写法
for (var i = 0; i < rows.length; i++) {
var index = $('#id').datagrid('getRowIndex', rows[i]);
$('#id').datagrid('deleteRow', index);
}
解决办法,使用一个中间数组selectRows保存要删除的行,然后循环数组中的行进行删除
var selectRows = [];
for (var i = 0; i < rows.length; i++) {
selectRows.push(rows[i]);
}
for (var i = 0; i < selectRows.length; i++) {
var index = $('#id').datagrid('getRowIndex', selectRows[i]);
$('#id').datagrid('deleteRow', index);
}