【问题标题】:jqgrid can't load specific page during reload data from server sidejqgrid 在从服务器端重新加载数据期间无法加载特定页面
【发布时间】:2011-09-28 11:23:35
【问题描述】:

我正在使用 jqgrid 3.8.2, 我正在尝试使用以下代码从服务器端重新加载数据并显示特定页面,例如当前页面。 $("#mygrid").setGridParam({datatype:json}).trigger("reloadGrid",[{page:5}]); 网格可以正确地从服务器加载数据,但总是显示第一页而不是第 5 页。 有人可以帮我看看吗?

问候 西蒙

【问题讨论】:

  • 你能告诉我们你的服务器端代码吗?无论如何,要重新加载您的 jqGrid 就足够了: $("#mygrid").trigger('reloadGrid',[{page:5}]);

标签: jqgrid pagination reload


【解决方案1】:

我假设您使用loadonce: true 参数。要从您设置 datatype: 到 'json' 的服务器重新加载数据(我希望您使用 setGridParam({datatype:'json'}) 而不是 setGridParam({datatype:json}) 就像它在问题的代码片段中一样)。从服务器加载数据后本地数据的第一页会显示出来。

要解决这个问题,您必须在loadComplete 内再次重新加载网格,但现在您应该重新加载本地网格。要没有重新加载循环并允许本地分页,您应该验证当前 datatype 是否为 'json':

var myGrid = $("#mygrid"), currentPage = 1;
...
myGrid.jqGrid({
    // all grid parameters and additionally the following
    loadComplete: function() {
        if (this.p.datatype === 'json' && currentPage !== 1) {
            setTimeout(function() {
                myGrid.trigger("reloadGrid",[{page:currentPage}]);
            }, 50);
        }
    }
});
....
currentPage = 5;
myGrid.setGridParam({datatype:'json'}).trigger("reloadGrid",[{page:currentPage}]);

查看演示 here

【讨论】:

  • 我也试图让它工作 - 但我没有使用 loadonce。我试图在用户第一次访问页面时设置当前页面。在我的服务器上,当前页面 - “页面” - 始终是一个,无论我在 loadComplete 中设置什么网格参数。
  • @DoctorOreo:您是否尝试仅使用 jqGrid 的 page: 2(任何其他默认值 page:1)选项?您应该验证 jqGrid 是否会将page=2 作为参数发送到服务器。如果它不能解决问题,您应该打开新问题,包括更多代码和问题描述。
  • @Oleg:我发布了一个new question,因为我确实让它部分工作,但没有像我希望的那样。
  • @Oleg :很好的答案,但是如果我调用了一个返回 json 数据的 ajax 请求,请告诉我。这时,我怎样才能用这些数据填充我的 jqgrid?我的意思是在调用这个请求来填充 jqgrid 之后我应该使用什么函数。谢谢。
  • @JadChahine:这是非常古老的答案。现在有更好的可能性。回答你的问题:网格有url 参数。使用.trigger("reloadGrid", {fromServer: true, page:currentPage}); 将使用来自url 的新日期重新加载网格,而不是使用可能在本地修改的jqGrid 的data 参数重新加载网格(如果使用没有fromServer: truefree jqGrid 选项)。此外,forceClientSorting: true 选项允许删除答案中描述的loadComplete 的所有代码。
猜你喜欢
  • 2010-11-21
  • 1970-01-01
  • 1970-01-01
  • 2021-07-19
  • 1970-01-01
  • 1970-01-01
  • 2011-12-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多