主要使用到了jqGrid中的三个事件
主要思路就是点击checkbox时将行id从全局变量中保存或删除,翻页时再去判断变量中是否有行id
<script type="text/javascript">
//保存行id
var checkBox = [];
//保存其他数据,没需求可以删除
var checkValue = [];
$("#table_list_1").jqGrid({
url:"${admin_module }/userList",
datatype: "json",
height:200,
autowidth: true,
shrinkToFit: true,
rowNum: 5,
rowList: [5, 20, 30],
colNames: ['用户昵称', '手机号码', '真实姓名', '注册时间', '用户类型'],
colModel: [
{name: 'userAccount', index: 'userAccount'},
{name: 'userPhone', index: 'userPhone'} ,
{name: 'userName', index: 'userName'},
{name: 'initDate', index: 'initDate', formatter: function(cellvalue, options, row) {
if(cellvalue != '' ){
return new Date(cellvalue).toLocaleDateString()
}else{
return '';
}
}
},
{name: 'userType', index: 'userType'}
],
pager: "#pager_list_1",
viewrecords: true,
multiselect : true,
caption: "用户选择-列表",
hidegrid: false ,
jsonReader: {
root: "items",
page: "page",
total: "totalPages",
records:"totalCount",
repeatitems : false
},
add: true,
addtext: 'Add',
edit: false,
loadComplete:function(xhr){
var array = xhr.items;
$.each(array, function (i, item) {
if (checkBox.indexOf(String(item.id)) > -1) {
$("#jqg_table_list_1_" + item.id).attr("checked", true);
}
});
},
//单选
onSelectRow : function(rowId, status) {
if (status) {
if (checkBox.indexOf(rowId) == -1) {
//行id加入变量中
checkBox.push(rowId);
//保存其他数据,没有需求可以删除
var userAccount = $("#"+rowId).children('td').eq(1).children('input').val();
checkValue.push(userAccount);
}
} else {
deleteCheckBox(rowId);
}
},
//全选
onSelectAll : function(aRowids, status) {
if (status) {
for(var i=0;i<aRowids.length;i++){
if (checkBox.indexOf(aRowids[i]) == -1) {
//行id加入变量中
checkBox.push(aRowids[i]);
//保存其他数据,没有需求可以删除
checkValue.push($("#"+aRowids[i]).children('td').eq(1).children('input').val());
}
}
} else {
for(var i=0;i<aRowids.length;i++){
deleteCheckBox(aRowids[i]);
}
}
}
});
//变量去除
function deleteCheckBox(rowId) {
var index = checkBox.indexOf(rowId);
var value = checkValue.indexOf($("#"+rowId).children('td').eq(1).children('input').val());
checkBox.splice(index, 1);
checkValue.splice(value, 1);
}
</script>