【问题标题】:dgrid / dstore / Rest - How to add additional query parameters to requestdgrid / dstore / Rest - 如何向请求添加额外的查询参数
【发布时间】:2015-05-11 11:11:51
【问题描述】:

我将旧版本的 dgrid (onDemandGrid) 与 dojo JsonRestStore 一起使用。

我的网页有一些输入字段(例如日期、姓名等)。更改这些字段之一后,我更改了网格的查询:

grid.setQuery({y: year, m: month, l: name1, d: flag, e: name2});

Json 请求类似于 ?y=2015&m=5&l=test1&....

我了解到,对于 dgrid 的实际版本,这是不可能的。

dgrid/dstore. 有类似的可能吗? 过滤似乎不是一种选择,据我所知,这只是在客户端,我无法加载所有数据。我需要一些动态参数来过滤服务器上的数据。

【问题讨论】:

    标签: dojo dgrid jsonreststore


    【解决方案1】:

    dstore 等效于dojo/store/JsonRestdstore/Rest(但是,如果您在服务器上没有兼容的 REST API,您可能需要使用dstore/Request)。

    dstore 的filter 方法允许您进行任意查询。它返回一个集合,其中存储了任何已应用的过滤器,以便在调用 fetchfetchRange 时包含它们。

    var store = new Request({ target: '/path/to/service' });
    var filteredCollection = store.filter({ y: 2015, m: 5 });
    filteredCollection.fetch();
    

    将导致以下 HTTP 请求:

    /path/to/service?y=2015&m=5
    

    要在 dgrid 0.4 中使用此功能,您可以将过滤后的集合分配给网格实例(并且 dgrid 将根据需要处理调用 fetch/fetchRange):

    grid.set('collection', store.filter({y: year, m: month}));
    

    dgrid 0.4 和 dstore 引入了网格与存储交互方式的重大转变。在 dgrid 0.3 中,网格在管理存储的查询状态方面发挥了更加积极的作用 - 在 dgrid 0.4 中,情况不再如此(因此删除了 setQuery 方法)。在 dgrid 0.4 中,由网格外部的代码来实现与过滤存储数据相关的逻辑。而在 dgrid 0.3 中,您通常只设置一次网格的 store 属性,并在需要过滤数据时调用 setQuery,而在 dgrid 0.4 中,您可以在需要更新过滤的任何时候设置 collection 属性。 dstore 的Request 存储允许您为rangesort 过滤配置参数名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-21
      • 2017-08-23
      • 2013-07-20
      相关资源
      最近更新 更多