easyui datagrid 分页保持checkbox选中状态

刚开始我一直迷迷糊糊的写了很久,发现其实很简单 先给大家看看我的笨办法

var checkedItems = [];
 function ischeckItem() {
        for (var i = 0; i < checkedItems.length; i++) {
            $('#maingrid').datagrid('selectRecord', checkedItems[i]); //根据id选中行 
        }
    }

 function findCheckedItem(ID) {
        for (var i = 0; i < checkedItems.length; i++) {
            if (checkedItems[i] == ID) return i;
        }
        return -1;
    }

 function addcheckItem() {
        var row = $('#maingrid').datagrid('getChecked');
        for (var i = 0; i < row.length; i++) {
            if (findCheckedItem(row[i].id) == -1) {
                checkedItems.push(row[i].id);
            }
        }
    }
    function removeAllItem(rows) {

        for (var i = 0; i < rows.length; i++) {
            var k = findCheckedItem(rows[i].id);
            if (k != -1) {
                checkedItems.splice(i, 1);
            }
        }
    }
    function removeSingleItem(rowIndex, rowData) {
        var k = findCheckedItem(rowData.id);
        if (k != -1) {
            checkedItems.splice(k, 1);
        }
    }

 后来发现有个idField的属性,这个属性为了什么作用呢?我查阅了easyui的源代码发现这个就是来区分状态的

在easyui datagrid设置

idField:"主键字段名"
你会发现选中状态就会保持得住,不用做任何编码。

你可能感兴趣的:(easyui datagrid 分页保持checkbox选中状态)