使用带有过滤器的dgrid / dstore的REST存储

时间:2014-12-09 02:21:27

标签: dojo dgrid

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

示例:



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




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

1 个答案:

答案 0 :(得分:3)

在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结束时讨论的。