使用easyui数据网格中deleteRow删除行数据时,批量删除会发现,删除数据时是间隔删除的,选中的数据没有全部删除,原因是index会发生改变,获取到的rows的数据也发生了改变
例如图中数据为rows,当循环删除第一条数据时,rows的数据变为从第二条开始到最后一条,索引仍从 0开始,所以删除的第二条索引为2 的数据实际上是图中第三条数据
解决办法:
使用一个数组SelectRows保存要删除的行,然后循环数组中的行进行删除。
1 var SelectRows =$('#id').datagrid('getSelections'), SelectRows = []; 3 for ( var i= 0; i< rows.length; i++) { 4 SelectRows.push(rows[i]); 5 } 6 for(var j =0;j<SelectRows.length;j++){ 7 var index = $('#id').datagrid('getRowIndex',SelectRows[j]); 8 $('#id').datagrid('deleteRow',index); 9 }