首页 > 技术文章 > jqGrid动态删除多行数据时出现的不完全删除问题

easen 2017-07-07 15:29 原文

下面是错误的写法:

//获取选中行的id集合
var
ids = $("#grid-table").jqGrid('getGridParam','selarrrow'); for(var i=0;i<ids.length;i++) { $("#grid-table").jqGrid('delRowData',ids[i]); }

当选中的行数大于1时,就会出现有几行数据删除不干净的情况,这是因为遍历的问题,因为在删除的过程中,id集合ids的下标会随着删除而变化,这个就类似于Java的List集合,当你删除一条数据时,下一条数据的下标会往前移,所以必须对遍历过程作一些修改。下面是正确的写法:

var ids = $("#grid-table").jqGrid('getGridParam','selarrrow');
var len = ids.length;
for(var i=0;i<len;i++)
{
    $("#grid-table").jqGrid('delRowData',ids[0]);
}

 

推荐阅读