2014-07-16 247 views
0

我正在运行spring web服务,使用mongodb作为后端,并使用kendo ui网格来显示数据。 我试图实现自定义服务器端分页,因为kendo ui网格的serverPagination无法正常工作。Kendo UI Grid serverPagination兼容性

我已经建立了Web服务,将我的JSON响应分解成不同的页面,如下所示。

path/to/json/1 
path/to/json/2 
path/to/json/3 

我的问题是,这是格式剑道UI电网兼容,如果是的话我怎么可能通过网页在网格页面加载此数据。

我改变我的服务器端响应,就像使用特定的url一样,我遇到了kendo网格认为它是所有数据的问题,因此它只显示底部的一个页面。

因此现在,我返回原始大小的JSON阵列(比如10),并且如果所述的pageSize为5,以下是我的服务器的响应:

Page 1 Page 2 
1   x 
2   x 
3   x 
4   x 
5   x 
x   6 
x   7 
x   8 
x   9 
x   10 

其中x是一个空着的OBJ。

因此理论上,在第1页上,剑道网格会加载前5个元素,并用空的填充页面2。并且当在第2页上点击时,它将加载下面的五个元素并用空的填充第一页。 这样,剑道网知道json的总大小,并且可以基于此实例化页面。

但是,我现在的问题是,对于页面1,剑道网格加载所有10个元素和页面2相同,而不是分裂它。

围绕这个任何理念,还是有一种比这更有效的方法?

回答

0

如果你想读的值按页码比你将不得不设置如下读取网址:

read: { 
    url: "path/to/json/#= getCurrentPage() #" 
} 

JS:

function getCurrentPage() { 
    return $("#grid").data("kendoGrid").dataSource.page(); 
} 

让我知道如果以上不满足您的需求或者您有任何疑问。

+0

我改变了我的服务器的响应,以及上面显示的。你可以检查它。 – anshk9

0

使用ajax GET请求来获取我的列表的总大小,我能够动态地更改012.s变量在transport.schema中的值。现在我只需要返回每个页面的json,而不是执行上面的任何代码。它工作正常。