我想实现这样的目标:
filteringSelect.query = {id: "12|13"};
或
filteringSelect.query = {id: new RegExp("12|13")};
有可能吗?
我使用ItemFileReadStore作为FilteringSelect的商店。
答案 0 :(得分:1)
如果您想加倍努力,请参阅Fuzzy Matches on dijit.form.ComboBox / dijit.form.FilteringSelect Subclass。但是,这用于过滤用户输入。
在filterSelect中打开/输入任何内容之前过滤掉条目,继续你正在做的事情。但是,一个简单的字符串不接受OR运算符,使用RegExp
。
ItemFileReadStore docs on query
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/示例用法