我使用dojo jsonreststore的dgrid(ondemandgrid)toghether使用了旧版本。
我的网页有一些输入字段(例如日期,名称等)。更改了其中一个字段后,我更改了网格的查询:
grid.setquery({y:Year,M:month,l:name1,d:flag,e:name2});
和json请求就像?y = 2015& m = 5& l = test1& ....
我了解到,使用DGRID的实际版本这不再可能。
使用DGRID/DSTORE可以使用Simelar。据我了解,过滤似乎不是一个选择,而这仅在客户端,我无法加载所有数据。我需要一些动态参数来过滤服务器上的数据。
dstore等效于dojo/store/JsonRest
是dstore/Rest
(但是,如果您在服务器上没有合规的REST API,则可能需要使用dstore/Request
)。
dstore的filter
方法允许您进行任意查询。它返回使用存储的任何施加过滤器的集合,以便在调用fetch
或fetchRange
时将其包括在内。
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中,您通常会单个时间设置网格的store
属性,并在需要过滤数据时调用setQuery
,使用DGRID 0.4,您可以在需要更新过滤时设置collection
属性。DSTORE的Request
商店允许您配置range
和sort
过滤的参数名称。