利用JQGrid删除多行数据:
所选中行号依次为 1、2、4
利用FireBug 查看由 js 动态生成的 html 标签可以验证:
可以看出每行的行号就是它的 id号
点击删除后,如果会动态变化那么缴费记录编号为3 的这行数据行号应该变为 1 :
Html:
从此可以看出剩下的这行 id仍是 3 ,所以行号是不会动态变化的。
其实按常理来推测行号也是不会动态变化的,因为在添加、删除的过程中只是对所选择的数据行进行更新,并没有刷整个数据表的div ,所以不会动态的调整行号(也许以后的插件中会动态的刷新整个 div )。
在删除的过程中还遇到了另一个问题:选中多行数据时总是删不干净,总是会残留一两行。
错误代码:
- var selectedRowIds =
- $("#costList").jqGrid("getGridParam","selarrrow");
- for(var i = 0;i < selectedRowIds.length ;i ++) {
- $("#costList").jqGrid("delRowData", selectedRowIds[i]);
- }
selectRowIds是一个指向选中行数组的一个引用,在用 jqgrid删除数据时会动态的变化;
所以在循环中i的循环条件会在每一次循环后都在动态变化,故会出问题.
由于 selectedRowIds 动态变化, i也动态变化,所以此种
selectedRowIds[ i ]
取法也有问题,它不会每次都取这个数组的第一个数据.
修改后正确代码:
- var consoleDlg = $("#delcostListDlg");
- var selectedRowIds =
- $("#costList").jqGrid("getGridParam","selarrrow");
- var len = selectedRowIds.length;
- for(var i = 0;i < len ;i ++) {
- $("#costList").jqGrid("delRowData", selectedRowIds[0]);
- }
将数组的长度赋给一个变量,则循环的条件就不会变化了 ;
每次都取第 0个数据
原文:http://blog.csdn.net/drykilllogic/article/details/6112516