2014-07-16 242 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,而不是執行上面的任何代碼。它工作正常。