jqGrid: How to use multiselect on different pages

jqgrid, multi-select, paging

Solution

Right, jqGrid will only select rows on the current page. In order to select other rows you need to maintain a list of selected ID's and manually select them.

To do this you need to add code to your `loadComplete` event to search the current page and select any of these rows:

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

You also need to add code to your `onSelectRow` and `onSelectAll` events to adjust the contents of `selected` when the user selects/unselects rows:

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

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

Does that help?

Problem

Simple question, hard to find an answer: If I try to select a row programmatically, I use this: ``` $('#grid').jqGrid('setSelection', rowId); ``` The problem is that it only selects rows on current visible page. If rowId is on another page, it will not be selected. More info: My goal is to select multiple rows (spread on multiple pages) when page loads for the first time. Thanks, Rafael PS: This guy has the same problem. No answer yet: jqgrid multiselect only selects rows on the current page, if paging is enabled. How to make it select rows across pages?

Original source

Related problems