JQGRID - 保持复选框选择状态 - 页面刷新/重定向/重新加载

3

如何在JQGRID中实现页面刷新/重新加载/从其他页面重定向后保持复选框选择状态?

我正在使用aspx页面。

使用以下代码,我可以在分页中维护复选框的选择状态:

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

然而,在JQGrid中,如何在页面刷新/重定向/重新加载时保持复选框的选择状态?

另外,我已经尝试在Window.OnLoad上使用以下代码,但它不起作用。

$("#list").trigger("reloadGrid", [{page: 1, current: true}]);

有没有针对这个需求/问题的解决方案/想法/建议? - user5409139
你没有对我为你发布的答案进行评论。你对这个解决方案感兴趣吗? - Oleg
1个回答

2

在旧版本的jqGrid中,跨多个页面进行选择的实现非常棘手。我发布了答案答案(请尝试演示)以及相应的实现方式。

另一方面,跨多个页面选择多行的场景非常普遍。因此,我在免费的jqGrid中实现了新功能。现在,只需使用新的multiPageSelection: true选项与multiselect: true组合即可。它会改变选择的行为方式:

  • 可以使用selarrrow数组在创建网格时直接预选一些行。
  • 数组selarrrow可以保存来自其他页面的行的id。在更改页面时,数组selarrrow不会被清除。 jqGrid仅选择其rowid在数组selarrrow中的行。
  • 单击复选框列标题中的“全选”复选框将selarrrow填充为本地data(来自所有页面)的所有 rowids。

演示展示了这个新功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接