这个主要涉及三个知识点:
- 定义一个数组用来缓存数据
- 使用jqgrid本身的属性onSelectAll和beforeSelectRow
- 自定义封装的一个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); } }