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     }

 

                    

posted @ 2020-09-03 16:52  敲键盘的喵~  阅读(615)  评论(0编辑  收藏  举报