如果启用了分页,则jqgrid multiselect仅选择当前页面上的行.如何让它跨页面选择行?

gio*_*o79 8 jqgrid multi-select

我注意到在jqgrid演示(http://www.trirand.com/blog/jqgrid/jqgrid.html> Advanced> Multiselect)中,如果启用了分页,则只选择当前页面上的行(可见).

有关让它跨多个页面工作的任何提示.或任何其他替代解决方案?

Wee*_*zle 3

我知道这个问题有点尘土飞扬,但我最近需要这个功能,并找到了我认为更干净的方法来实现它。

为什么不使用jqGrid 的onSelectRow和事件,而不是为每个复选框附加一个事件?onSelectAll当选择一行时,检查所选行的列表是否包含该行(基于 id)。如果它不存在并且已被选择,则将其添加到列表中;如果它存在并且不再被选择,则将其删除。如果选择了所有行,则迭代它们。

var $grid  = jQuery("#myGrid");
var updateIdsOfSelectedRows = function (id, isSelected) {
    var contains = idsOfSelectedRows.contains(id);
    if (!isSelected && contains) {
        for(var i=0; i<idsOfSelectedRows.length; i++) {
            if(idsOfSelectedRows[i] == id) {
                idsOfSelectedRows.splice(i, 1);
                break;
            }
        }
    }
    else if (!contains) {
        idsOfSelectedRows.push(id);
    }
};

$grid.jqGrid({
    ....
    onSelectRow: function(rowid, status){
        updateIdsOfSelectedRows(rowid, status);
    },
    onSelectAll: function (aRowids, status) {
        var i, count, id;
        for (i = 0, count = aRowids.length; i < count; i++) {
            id = aRowids[i];
            updateIdsOfSelectedRows(id, status);
        }
    },
    ....
 )};
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助其他人寻找解决方案。