Jqgrid与Restful Web服务分页

时间:2014-11-06 06:25:39

标签: java rest jqgrid

我有以下要求;  我有一个jqgrid使用webservice(RESTful webservices)调用加载json数据。当表单加载时,我点击服务器并将数据加载到grid.If我有50行,网格只加载50行。但我使用了分页,所以它只显示10条记录并点击分页中的下一个按钮,其他10条记录将显示。但我的要求是在formload上我应该点击服务器并限制只显示10条记录。然后我再次点击Next我呼叫webservice呼叫和显示接下来的10行。是否可能?如果是,可以共享任何样本吗?

1 个答案:

答案 0 :(得分:0)

经典的RESTful Web服务不支持分页。因此,必须从服务器返回所有数据并使用客户端分页。如果您只有50行数据,我建议您使用客户端分页。你只需要在jqGrid中包含loadonce: true选项,所有选项都应该可以使用。一般情况下,如果从服务器加载的数据不是很多,建议使用loadonce: true选项。不存在客户端分页首选的行的确切限制。它有大约1000或10000行数据。因此,如果有50行数据,则非常严格推荐。

如果您确实需要实现RESTful服务的服务器端分页(如果是非常大的数据集),那么您的服务必须支持请求的附加参数,这与资源URL无关。例如,开放数据协议(OData)URI支持从版本2.0开始(例如,参见here)参数$orderby$skip$top$inlinecount附加到URL以通知服务器返回按$orderby排序的数据。返回的数据应仅包含基于$skip$top参数值的一页排序数据。 URL看起来像

http://host:port/path/SampleService.svc/Categories(1)/Products?$top=2&$orderby=Name
\______________________________________/\____________________/ \__________________/
                      |                               |                       |
              service root URL                  resource path           query options

The old answer提供了一个实现jqGrid的示例,它调用了开放数据协议(OData)Web服务。我使用serializeGridData回调来填充$top$skip$orderby$inlinecount,其中"了解" OData网络服务。由于请求中使用beforeProcessing,我根据服务器返回的total属性使用count回调$inlinecount: "allpages"属性。如果您使用的RESTful Web服务也支持OData,那么您可以使用相同的代码。