easyui datagrid使用deleteRow批量删除行bug

使用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     }

                    

原文地址:https://www.cnblogs.com/Leeblog200814/p/13608506.html