2012-02-03 50 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财产。

祝你好运。 德米特里。