JQGRID - maintain check box selection state - page refresh / redirect / reload

邮差的信 提交于 2019-12-17 02:26:53

问题


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}]);

回答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 array selarrrow will be not cleared on changing the page. jqGrid just select rows if it's rowid is in the array selarrrow.
  • click on "Select All" checkbox in the header of checkbox columns fills selarrrow with all rowids of local data (from all pages)

The demo demonstrates the new feature.



来源:https://stackoverflow.com/questions/32963829/jqgrid-maintain-check-box-selection-state-page-refresh-redirect-reload

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!