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

时间:2015-10-06 07:10:13

标签: javascript asp.net checkbox jqgrid jqgrid-asp.net

H 要在页面刷新/重新加载/从 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}]);

1 个答案:

答案 0 :(得分:1)

在旧版本的jqGrid中,对多个网格页面的选择实现非常棘手。我发布了the answerthe answer(尝试the demo)以及相应的实现。

另一方面,在多个页面上选择多行的场景非常常见。因此,我在免费的jqGrid中实现了新功能。现在,您可以将新的multiPageSelection: true选项与multiselect: true结合使用。它以下列方式改变选择行为:

  • 可以在创建网格期间直接使用selarrrow数组预先选择某些行。
  • 数组selarrrow可以保存其他页面中的行ID。更改页面时,不会清除数组selarrrow。如果jqGrid的rowid在数组selarrrow中,则只选择行。
  • 点击"全选"复选框列标题中的复选框用{em>所有本地selarrrow的rowid(来自所有页面)填充data

The demo演示了新功能。