我正在为JQGrid实现服务器端分页(使用MVC4)。我能够做到这一点。我没有使用JQGrid的寻呼机选项。相反,我使用自定义寻呼机实现。为此,我需要获取服务器返回的总页数。
我尝试了以下内容:
grid.getGridParam('lastpage') -- always returns 1, which makes sense as I am returning only one page contents to the grid
grid.getGridParam('total') -- I tried this because I was setting this value in the controller, but it is returning null
grid.getGridParam('records') -- always returns 10, my page size.
答案 0 :(得分:2)
我认为您以错误的方式使用loadonce: true
选项。该选项的目标是客户端分页,排序和过滤/搜索。如果使用loadonce: true
选项,服务器必须返回所有行。如果使用loadonce: true
选项,则会忽略值total
,records
和page
,并根据返回的项目总数设置相应的值服务器。因为您只返回了10个项目(第一页的项目),所以参数的值与您在问题中描述的完全相同。顺便提一下,如果您没有这么大的数据集(例如1-10万行),我会建议您使用loadonce: true
选项。服务器应返回按所请求参数(sidx
和sord
)排序的所有项。可以从服务器返回所有已排序项的数组,而无需任何其他信息。
顺便说一句,jqGrid页面相关参数的含义如下:
答案 1 :(得分:0)
如果您使用dataType : "json"
,则需要在jqGrid的jsonReader
属性中设置这些值,
$("#gridid").jqGrid({
...
jsonReader : {
root: "rows",
page: "page",
total: "total",
records: "records",
repeatitems: true,
cell: "cell",
id: "id",
userdata: "userdata",
subgrid: {
root:"rows",
repeatitems: true,
cell:"cell"
}
},
...
});
最后是发送到服务器以获取数据的值。因此,如果必须覆盖这些值,则需要更改这些值。
因此,请确保在服务器端使用相同的值来获取这些值。