首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向Dojo ItemFileReadStore添加范围筛选器/查询

如何向Dojo ItemFileReadStore添加范围筛选器/查询
EN

Stack Overflow用户
提问于 2016-09-02 15:21:54
回答 1查看 251关注 0票数 0

“假设您有一个JSON,它是Dojo ItemFileReadStore的源,该存储库位于一个名为bdayGrid的Dojo DataGrid下面,并且它每一行都有两个属性,"name”和“生日”。

代码语言:javascript
复制
{
  "items": [
    { "name": "Bob", "birthdate": { "_type": "Date", "_value": "1965-08-20"},
    { "name": "Jack", "birthdate": { "_type": "Date", "_value": "1969-11-12"},
    { "name": "Will", "birthdate": { "_type": "Date", "_value": "1998-04-20"}
  ]
}

假设还存储了两个有效日期,它们定义了日期范围:

代码语言:javascript
复制
var beginDate = "1995-01-05";
var endDate = "2016-01-01";

那么,如何对ItemFileReadStore上的查询进行编码,从而有效地在该日期范围内进行筛选?通过单个值进行筛选似乎很容易;您可以编写如下代码:

代码语言:javascript
复制
 bdayGrid.filter({birthday: "1965-08-20"});

但是,如何传递一个高/低值对,以用于筛选范围内的日期?您必须编写自定义Dojo DataStore QueryEngine吗?如果是的话,那会是什么样子呢?

EN

回答 1

Stack Overflow用户

发布于 2016-09-16 08:03:21

我认为过滤机制不适合这个应用程序。

我将在该字段的数据和筛选器中添加另一个布尔字段(例如_show)。然后循环遍历存储项,检查它们是否与我的日期范围匹配,并相应地设置布尔字段。

我认为您需要使用ItemFileWriteStore来更改这个字段。

对日期使用Date也可能更容易一些。

代码语言:javascript
复制
function filter(/*Date*/ startDate, /*Date*/ endDate){
  store.fetch({
    onItem: function(item){
      var date = store.getValue(item, '_value');
      store.setValue(item, '_show', (startDate <= date) && (date <= endDate));
    }))
  });
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39295861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档