【问题标题】:jqGrid keep current page on refreshjqGrid保持当前页面刷新
【发布时间】:2014-02-25 16:44:21
【问题描述】:

我正在尝试获取一个 jqGrid 表以保持其当前页面重新加载。我找到了一些样本,但它们似乎对我不起作用。这是我正在尝试的:

grid.setGridParam({datatype:'json'}).trigger('reloadGrid',[{page:currentPage}]);

它会刷新但总是重新显示第一页。

【问题讨论】:

  • 能否提供链接。我想查看获取 currentPage 值的参数和代码
  • 我刚刚将 currentPage 设置为字面值 2。由于我无法使分页工作,我从来没有把它设置为一个实际值。
  • @Chester:这个问题有什么解决办法吗?

标签: jqgrid


【解决方案1】:

要在重绘时保留页面,只需使用以下命令:

grid.trigger("reloadGrid",[{current:true}]);

出于兴趣,您还可以使用以下方法获取当前页面:

var currentPageVar = grid.getGridParam('page');

加法:

'grid' 是这样定义的:

var grid = jQuery("#grid");

指的是HTML中网格表的ID。

【讨论】:

  • 刷新是什么意思?此代码将在当前页面仍在视图中重绘网格...
  • 设计规范要求页面返回服务器以获取更新的数据并将该数据放入网格中,但不更改网格页面。
  • 你试过了吗:'grid.setGridParam({datatype:'json'}).trigger('reloadGrid',[{current:true}]);' ?
  • 是的,我做到了。它从服务器重新加载数据,但总是返回到第一页。
【解决方案2】:

您可以简单地使用以下代码:

 jQuery("#your_id").trigger("reloadGrid");

【讨论】:

  • 该代码保留当前页面,但不进行刷新。 AFAIK,我必须执行“.setGridParam({datatype:'json'})”来强制它返回服务器获取新数据。
【解决方案3】:

你可以使用

grid.trigger("reloadGrid", {page: currentPage, fromServer: true});

grid.trigger("reloadGrid", {current: true, fromServer: true});

如果使用free jqGrid fork。 forceClientSorting: trueloadonce: true 一起使用很重要

你描述的问题的原因如下:jqGrid只有在local分页的情况下才能显示第二页。如果你只使用loadonce: true,那么 jqGrid 总是显示第一页。更重要的是,服务器必须对从服务器返回的数据进行排序。选项forceClientSorting: true 通知free jqGrid 在从服务器加载数据后和 显示第一页(或另一页)之后本地 进行过滤、排序和分页。选项forceClientSorting: true 允许从外部源加载相对较大的数据集(无法控制的数据),在本地过滤数据(仅显示所需的数据子集),对结果进行排序并显示结果页面数据。

【讨论】:

    【解决方案4】:

    你一定在找这个代码

    $("#jsGrid").jsGrid("loadData");
    

    【讨论】:

      猜你喜欢
      • 2013-11-01
      • 2021-10-01
      • 2011-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-01
      • 2011-01-07
      相关资源
      最近更新 更多