【问题标题】:Using dgrid/dstore's REST store with a filter使用带有过滤器的 dgrid/dstore 的 REST 存储
【发布时间】:2014-12-09 02:21:27
【问题描述】:

我想扩展 dstore/Rest 以获取用于过滤存储的参数。本文建议这是更改 dstore 查询的所需方法:http://www.sitepen.com/blog/2014/11/17/introducing-dstore/

例子:

new MyExtendedRestStore({color: 'red'});

我希望 MyExtendedRestStore 的内部更改 GET 查询,以便现在可以在过滤器中设置颜色,这样任何刷新调用都会坚持将 color=red 添加到查询中。如果我理解正确,它还应该强制 dstore/Trackable mixin 服从过滤器。

【问题讨论】:

    标签: dojo dgrid


    【解决方案1】:

    在 dgrid 0.4 中,使用 OnDemandListPagination 的实例可以接受任何集合 - 无论是根存储,还是在该存储上执行操作而生成的集合。 filter 就是这样一种操作。

    在您的情况下,您声明您希望网格始终仅显示红色项目,因此您可以非常轻松地向网格传递过滤集合,并且不需要 Rest 的自定义扩展名:

    var TrackableRestStore = declare([ Rest, Trackable ]);
    var store = new TrackableRestStore({ target: '...' });
    var filteredCollection = store.filter({ color: 'red' });
    var grid = new OnDemandGrid({
        collection: filteredCollection,
        columns: ...
    });
    

    这也在 dgrid 的 Grids and Stores tutorial 末尾进行了讨论。

    【讨论】:

    • 谢谢。有没有办法让它“刷新”?
    • refresh 将从分配的集合中重新读取。如果您分配一个作为筛选商店结果的集合,则该筛选器将始终在网格刷新、排序等时应用。您的意思是这样吗?
    猜你喜欢
    • 1970-01-01
    • 2016-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多