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);

      。。。
  }

 

posted @ 2017-04-02 14:46  清风送明月  阅读(2020)  评论(0编辑  收藏  举报