2012-02-03 53 views
1

我們使用Sencha Ext JS 4作爲我們的LOB應用程序。在服務器上,我們使用MS RIA服務(Data Domain Services)和JSON端點。一般來說,一切工作正常。但分頁不是。 首先我們發現,JSON請求URL的一些研究,我發現,我可以使用下面的語法之後有這樣的RIA完全忽略的關鍵字(州,頁等):RIA服務JSON和Ext.Js

例如:

http://localhost/Product/ServiceName.svc/JSON/GetItems?_dc=1328305056811&$take=50&$skip=50 

即$ skip(如果您使用$ skip - 您必須在RIA端對查詢進行排序)和$ take,請求返回適當數量的記錄。然而 JSON響應看起來像這樣開頭:

{"GetItemsResult":{"TotalCount":-1,"RootResults":[ 

即TOTALCOUNT = -1 - 爲了分頁才能正常工作JS需要知道的記錄總數,我可以看到這個工作的唯一途徑 - 如果我查詢單獨請求的記錄數量,然後做頁面查詢。

問題是我想念什麼? RIA服務可能返回正確的TotalCount(如果沒有$ skip或$ take - RIA Service發回整個表並正確指定TotalCount)。

回答

1

對不起,我不知道很多關於你正在使用服務器端的技術。我正在使用Grails,不能更快樂。所以我無法幫助你的總數。

但是對於分頁參數ExtJS允許將它期望發送/接收的內容翻譯成服務器端所期望的內容。就像這樣:

proxy:{ 
    type: 'ajax', 
    url: 'request/my.json', 
    //override default param names 
    startParam : "offset", 
    limitParam :"max", 
    sortParam : "sort", 
    simpleSortMode:true,//required for directionParam to be used 
    directionParam : "order", 
    reader: { 
     type: 'json', 
     root: 'data' 
    }, 

在另外一個想法:如果你不能讓你的服務器端發送總數,創造在商店的監聽器和手動指望負荷記錄,並將其設置進店的TOTALCOUNT財產。

祝你好運。 德米特里。