我正在使用jqgrid 3.8.2, 我正在尝试使用下面的代码从服务器端重新加载数据并显示特定页面,如当前页面。 $( “#mygrid”)setGridParam({数据类型:JSON})触发。( “reloadGrid”,[{页:5}]); grid可以正确地从服务器加载数据,但始终显示第一页而不是第5页。 有人可以帮我一把吗?
此致 西蒙
答案 0 :(得分:11)
我想您使用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。