jqgrid获取不同分页的选中数据并保存回显

这个主要涉及三个知识点:

  1. 定义一个数组用来缓存数据
  2. 使用jqgrid本身的属性onSelectAllbeforeSelectRow
  3. 自定义封装的一个lodash.min.js 文件(切记要引入)百度网盘:https://pan.baidu.com/s/17JYOfaLVffzI1u5wL8uSkg 提取码:zgd3

主要实现逻辑:首先定义一个缓存,当表格中选择(取消)数据的时候,将选中(取消)的ID存放(移除)于缓存数组-->jqgrid数据加载结束后将缓存数据设置为被选中状态-->这样的话就能规避分页数据刷新带来的问题

实现代码如下:

//创建jqGrid缓存数组
var item_selected = monids;
//jqGrid数据加载结束后设置回显状态
gridComplete: function () {  
        //*********
         var _this = this;
            if(item_selected.length>0){
                for (var i = 0; i < item_selected.length; i++) {
                    $(_this).jqGrid('setSelection',item_selected[i]);
                }
            }
            selectjqg = item_selected;
},
}
//jqGrid中触发选中功能,将数据缓存在数组中
onSelectAll:function(aRowids,status) {
            var _this = this;
            if(status){
                item_selected = _.union(item_selected, aRowids);
            }else{
                item_selected = _.difference(item_selected, aRowids);
            }
        },
beforeSelectRow:function(rowid, e) {
            var _this = this;
            var index = _.indexOf(item_selected, rowid);
            if(index==-1){
                item_selected.push(rowid);
            }
            else{
                item_selected = _.pull(item_selected, rowid);
            }
       }

 

posted @ 2018-03-19 19:18  拄杖盲学轻声码  阅读(1707)  评论(0编辑  收藏  举报