jqgrid删除多行数据,删不全的解决方案
功能实现:
删除选中的多条数据
bug:
总是删不干净,比如选中5条执行删除操作,后台全删掉了,可是前台仍然有剩余的几条,再次刷新会不见
错误代码:
var ids = $("#grid-table").jqGrid("getGridParam", "selarrrow");// 获取选中的数据行id // 删除多行数据 for(var i = 0; i < ids.length ;i++){ $("#grid-table").jqGrid('delRowData', ids[i]); } // 重新加载数据 $("#grid-table").jqGrid('setGridParam').trigger("reloadGrid"); // 操作成功 $('#alert-success').css("display", "block")
分析:
ids数组的长度会变化,引起获取到的id不对应,所以删不掉
解决方案:
将获取到的ids的长度固定,每次删除数组的第一个
正确代码:
var ids = $("#grid-table").jqGrid("getGridParam", "selarrrow");// 获取选中的数据行id var len = ids.length; // 删除多行数据 for(var i = 0; i < len ;i++){ $("#grid-table").jqGrid('delRowData', ids[0]); } // 重新加载数据 $("#grid-table").jqGrid('setGridParam').trigger("reloadGrid"); // 操作成功 $('#alert-success').css("display", "block")
以上。