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