jqGrid:如何在不同页面上使用multiselect

时间:2012-07-19 19:27:28

标签: jqgrid paging multi-select

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

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

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

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

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

谢谢, 圣拉斐尔

PS:这家伙有同样的问题。还没有答案: jqgrid multiselect only selects rows on the current page, if paging is enabled. How to make it select rows across pages?

2 个答案:

答案 0 :(得分:8)

是的,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;
    }
}

这有帮助吗?

答案 1 :(得分:0)

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

了解实现目标的方法。