JQGRID - maintain check box selection state - page refresh / redirect / reload
How to maintain the checkbox selection after the page refresh / reload / redirected from some other page in JQGRID.
I am working in aspx
pages.
I am able to maintain the checkbox selection state in paging using following code:
gridComplete: function () {
var currentPage = $(this).getGridParam('page').toString(); //retrieve any previously stored rows for this page and re-select them
var retrieveSelectedRows = $(this).data(currentPage);
if (retrieveSelectedRows) {
$.each(retrieveSelectedRows, function (index, value) {
$('#list').setSelection(value, false);
});
}
},
onPaging: function (a) {
var pagerId = this.p.pager.substr(1); // ger paper id like "pager"
var pageValue = $('input.ui-pg-input', "#pg_" + $.jgrid.jqID(pagerId)).val();
var saveSelectedRows = $(this).getGridParam('selarrrow'); //Store any selected rows
$(this).data(pageValue.toString(), saveSelectedRows);
}
But, how to maintain the checkbox selection state in page refresh / redirect / reload in JQGrid
?
Also, I tried the following code on Window.OnLoad
, but it is not working
$("#list").trigger("reloadGrid", [{page: 1, current: true}]);
Solution 1:
The implementation of selection over multiple pages of the grid is very tricky in old versions of jqGrid. I posted the answer, the answer (try the demo) with the corresponding implementations.
On the other side the scenario of selection of multiple rows over multiple pages is very common. Thus I implemented new feature in free jqGrid. Now one can just use new multiPageSelection: true
option in combination with multiselect: true
. It changes the behavior of selection in the following way:
- one can use
selarrrow
array to pre-select some rows directly during creating the grid. - the array
selarrrow
can hold the ids of rows from other pages. The arrayselarrrow
will be not cleared on changing the page. jqGrid just select rows if it's rowid is in the arrayselarrrow
. - click on "Select All" checkbox in the header of checkbox columns fills
selarrrow
with all rowids of localdata
(from all pages)
The demo demonstrates the new feature.