JsonRest和EnhancedGrid插件在dojo中不能很好地播放

时间:2014-12-19 15:55:21

标签: rest sorting dojo pagination

我有一个通过ObjectStore填充的增强型网格,而ObjectStore又通过JsonRest对象调用休息服务来填充。

数据正在被放入网格中,但我注意到两种奇怪的行为。

  1. 浏览分页网格的不同页面会显示与第1页相同的结果

  2. 排序根本不起作用(我使用的是嵌套排序)

  3. 我的网格和商店如下:

     var myStore = new JsonRest (
     {
     target: "location/of/rest/service/with/params,
     idProperty : "id"
     });
    
     var objStore = new ObjectStore ({ objectStore: myStore });
    
     var layout = [[{layout stuff}];
    
     grid = new EnhancedGrid({
     id: 'griddles',
     store: objectStore,
     structure: layout,
     ......
     plugins: {
     indirectSelection: true,
     pagination : {
      pageSizes : [my page sizes],
      description : true,
      sizeSwitch : true,
      pageStepper : true,
      gotoButton : true,
      defaultPageSize : 5,
      maxPageStep : 10,
      position: "bottom"
     },
     exporter: true
     }},
     "grid");
     });
    

    任何帮助将不胜感激;当我使用itemfilewriter填充静态数据时,它在分页和排序方面都可以正常工作。

1 个答案:

答案 0 :(得分:0)

dojo/store/JsonRest向服务器发送每个远程查询的请求,因此它自然依赖于服务器进行分页,排序和过滤。服务器负责解释JsonRest的请求并做出相应的响应,而且听起来好像不是。

JsonRest表示通过Range标头请求的范围。例如,从开头(索引0)开始并请求10个项目的查询将转换为Range: items=0-9,而从索引10开始请求10个项目将转换为Range: items=10-19

排序参数包含在查询字符串中,格式为sort(+fieldname)用于升序,或sort(-fieldname用于降序。如果要指定多个排序字段,则期望它们以逗号分隔(例如sort(+field1,-field2)。如果在键值对中需要它,则可以在传递给{的arguments对象中指定sortParam {1}},在这种情况下,查询字符串将包含JsonRest之类的内容。您还可以通过yourSortParam=sort(...)+自定义-ascendingPrefix前缀

这些服务器期望记录在Reference Guide