1

我想实现这样的目标:

filteringSelect.query = {id: "12|13"};

或者

filteringSelect.query = {id: new RegExp("12|13")};

是否可以?

我使用 ItemFileReadStore 作为该 FilteringSelect 的存储。

4

1 回答 1

1

如果您想更进一步,请参阅dijit.form.ComboBox / dijit.form.FilteringSelect 子类上的模糊匹配。然而,这是为了过滤用户输入。

要在过滤选择中打开/输入任何内容之前过滤掉条目,请继续您正在做的事情。但是,一个简单的字符串不会接受 OR 运算符,请使用RegExp.

ItemFileReadStore 查询文档

var store = new ItemFileReadStore( {
    query: {
       id: new RegExp("/^(12|13)$/")
    }
} );

作为起点,所有商品都存在于商店中,使用查询引擎的方式是通过fetch

store.fetch({
        query: { 
          // yes, you can set the query property directly 
          // in the store and leave out this parameter
            id: new RegExp("^(1|12)$")
        },
        onComplete: function(items) {
            dojo.forEach(items, function(item) {
                console.log(store.getValue(item, 'name'))
            });
        }

    })

参见http://jsfiddle.net/LuUbT/示例用法

于 2012-08-24T20:06:05.750 回答