jqGrid 编辑完数据后能返回到当前位置的方法

jqGrid 是一个js的jquery组件,虽然不轻便,但功能还是蛮强大的,也比较方便使用。在数据加载后,经常需要对其中的记录进行编辑,修改完后再返回时需要看到修改后的数据,一般采取重新加载的方法reloadGrid,但问题是列表中的数据因为重新加载之故,记录位置就不是原来的位置了,如果想继续定位在原来位置(keep position)可以采取如下方法:

1. 定义2个全局量:

  var selectedRowIndex = 0;  //记住记录号

  var scrollPosition = 0;          //记住jqgrid列表中页面的滚动位置

2. 在onSelectRow事件中保存记录号:

  onSelectRow: function () {
                selectedRowIndex = $("#" + this.id).getGridParam('selrow');

       。。。
  }

  或在编辑前保存:

  selectedRowIndex = $("#gridId").getGridParam('selrow');   // gridId是jqgrid元素的id名

3. 编辑前记住jqgrid列表中页面的滚动位置:

  scrollPosition = $("#gridId").closest(".ui-jqgrid-bdiv").scrollTop();

4. 处理完编辑后在gridComplete事件中恢复:

  gridComplete: function () {
                $("#" + this.id).setSelection(selectedRowIndex, false);
                $("#" + this.id).closest(".ui-jqgrid-bdiv1").scrollTop(scrollPosition);

      。。。
  }

作者:清风送明月
出处:http://www.cnblogs.com/csu8263/
另一博客:http://blog.chinaunix.net/uid/20510751.html
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/csu8263/p/6659052.html