jqgrid 翻页记录选中行

Posted 听雨的人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jqgrid 翻页记录选中行相关的知识,希望对你有一定的参考价值。

简单的jqgrid列表

$("#list").jqGrid({
        url:contextPath + "/getList",
        postData: data,
        datatype:"json", 
        colNames : [ \'用户名\',\'密码\'],
        colModel : [ {
            name : \'name\',
            index : \'name\',
            align : \'center\'
        }, {
            name : \'psw\',
            index : \'psw\',
            align : \'center\'
        }],
        rownumbers : true,
        viewrecords : true,
        multiselect : true,
        rowNum : 20,
        pager : $(\'#gridPager\')
    });

 

 分页后每次翻页都会丢掉之前选中行的记录

设置全局变量

var SelectList = []//(用于记录被选中的行)

 

onSelectAll: function (aRowids, status) {
    if (status) {
        for (var i = 0; i < aRowids.length; i++) {
            if (SelectList.indexOf(aRowids[i]) == -1) {//每一次勾选时,检查该行是否在SelectList中,
                //若在,则在SelectList中删除该记录
                //(翻页也会触发onselect事件,所以需检查该行是否在unselects中)
                SelectList.push(aRowids[i]);
            }
        }
    } else {
        for (var i = 0; i < aRowids.length; i++) {
            if (SelectList.indexOf(aRowids[i]) > -1) {//每一次勾选时,检查该行是否在SelectList中,
                //若在,则在SelectList中删除该记录
                //(翻页也会触发onselect事件,所以需检查该行是否在unselects中)
                SelectList.splice($.inArray(aRowids[i], SelectList), 1)
            }
        }
    }
},
gridComplete: function () {
    var ids = $("#grid-table").jqGrid(\'getDataIDs\');
    for (var i = 0; i < ids.length; i++) {
        if ((SelectList.indexOf(ids[i]) > -1)) {
            $("#grid-table").jqGrid(\'setSelection\', ids[i]);
        }
    }
},
onSelectRow: function (rowid, status) {
    if (status) { // 每一次取消选中时,将该行id添加到SelectList中
        if (SelectList.indexOf(rowid) == -1) {//每一次勾选时,检查该行是否在SelectList中,
            //若在,则在SelectList中删除该记录
            //(翻页也会触发onselect事件,所以需检查该行是否在unselects中)
            SelectList.push(rowid);
        }
    } else {
        if (SelectList.indexOf(rowid) > -1) {//每一次勾选时,检查该行是否在SelectList中,
            //若在,则在SelectList中删除该记录
            //(翻页也会触发onselect事件,所以需检查该行是否在unselects中)
            SelectList.splice($.inArray(rowid, SelectList), 1)
        }
    }
},

 

以上是关于jqgrid 翻页记录选中行的主要内容,如果未能解决你的问题,请参考以下文章

jqgrid 选中行触发编辑,切换下一行时验证和异步保存上一行数据

jquery easyui datagrid 在翻页以后仍能记录被选中的行及刷新设置选中行数据

jqGrid设置符合条件的行选中

jqgrid 设置某行不能够被选中

在js中怎么改变jqgrid行数据

怎样获取编辑后的jqgrid的值