7

简单的问题,很难找到答案:

如果我尝试以编程方式选择一行,我使用这个:

$('#grid').jqGrid('setSelection', rowId);

问题是它只选择当前可见页面上的行。如果rowId在另一个页面上,则不会被选中。

更多信息:我的目标是在第一次加载页面时选择多行(分布在多个页面上)。

谢谢,拉斐尔

PS:这个人也有同样的问题。还没有答案: 如果启用了分页,jqgrid 多选只会选择当前页面上的行。如何让它跨页面选择行?

4

2 回答 2

9

对,jqGrid 只会选择当前页面上的行。为了选择其他行,您需要维护所选 ID 的列表并手动选择它们。

为此,您需要向loadComplete事件添加代码以搜索当前页面并选择以下任何行:

var ids = grid.jqGrid('getDataIDs');
for (var i = 0; i < ids.length; i++){
    if (selected[ids[i]] === true ){
        grid.setSelection(ids[i], false);
    }
}

您还需要向您的onSelectRowonSelectAll事件添加代码以调整selected用户选择/取消选择行时的内容:

onSelectRow: function(rowid, status){
    selected[rowid] = status;
    setSelectedDeviceCount();
},

onSelectAll: function(rowids, status){
    for (var i = 0; i < rowids.length; i++){
        selected[rowids[i]] = status;
    }
}

这有帮助吗?

于 2012-07-19T19:51:55.090 回答
0

请看这个: https ://stackoverflow.com/a/24941828/136219

一种实现您正在寻找的东西的方法。

于 2016-05-23T06:38:42.480 回答