【问题标题】:JsonRest and EnhancedGrid plugins not playing nicely within dojoJsonRest 和 EnhancedGrid 插件在 dojo 中不能很好地发挥作用
【发布时间】:2014-12-19 15:55:20
【问题描述】:

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

数据被放入网格中就好了,但是我注意到了两个奇怪的行为。

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

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

我的网格和店铺如下:

 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 填充静态数据时,它在分页和排序方面都可以正常工作。

【问题讨论】:

    标签: rest sorting dojo pagination


    【解决方案1】:

    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)。如果您需要在键值对中使用它,您可以在传递给JsonRest 的参数对象中指定sortParam,在在这种情况下,查询字符串将包含yourSortParam=sort(...) 之类的内容。您还可以通过ascendingPrefixdescendingPrefix 自定义+- 前缀。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-15
      • 2015-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多