jqGrid 刷新时保持当前页码

5

我正在尝试让 jqGrid 表在重新加载时保持当前页。我找到了一些示例,但它们似乎对我不起作用。这是我正在尝试的:

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

它会刷新,但始终重新显示第一页。

你能提供链接吗?我想查看参数和获取currentPage值的代码。 - Attila Naghi
我刚刚将currentPage设置为字面值2。由于我无法使分页工作,所以我从未设置它为实际值。 - jtaylor___
1
@Chester:这个问题有什么解决方案吗? - Sid M
4个回答

2
要在重绘页面时保留页面,请使用以下代码:

(译者注:该代码针对IT技术方面)

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

有趣的是,您也可以使用以下方法获取当前页面:

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

补充:

'grid' 的定义如下:

var grid = jQuery("#grid");

这指的是HTML中网格表的ID。


“Refresh” 的意思是什么? 这段代码将重新绘制网格,但当前页面仍然可见... - Pat Dobson
设计规范要求页面返回服务器以获取更新的数据并将该数据放入网格中,但不更改网格页面。 - jtaylor___
你尝试过这个吗:'grid.setGridParam({datatype:'json'}).trigger('reloadGrid',[{current:true}]);' ? - Pat Dobson
2
是的,我做了。它会重新从服务器加载数据,但总是回到第一页。 - jtaylor___

0

你可以简单地使用这段代码:

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

那段代码保留了当前页面,但没有刷新。据我所知,我必须执行“.setGridParam({datatype:'json'})”来强制它返回服务器获取新数据。 - jtaylor___

0

您可以使用

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

或者

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

在使用free jqGrid分支时,重要的是同时使用forceClientSorting: trueloadonce: true

你所描述的问题的原因是:只有当jqGrid进行本地分页时,它才能显示第二页。如果你只使用loadonce: true,那么jqGrid将始终显示第一页。更甚者,服务器必须对从服务器返回的数据进行排序。选项forceClientSorting: true告知free jqGrid在从服务器加载数据后,在本地执行过滤、排序和分页操作,然后再显示第一页(或其他页)。选项forceClientSorting: true允许从外部源(无法控制其数据)加载相对较大的数据集,本地过滤数据(仅显示所需的数据子集),对结果进行排序并显示结果数据的页面。


0

你一定在寻找这段代码

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

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