我想实现这样的目标:
filteringSelect.query = {id: "12|13"};
或者
filteringSelect.query = {id: new RegExp("12|13")};
是否可以?
我使用 ItemFileReadStore 作为该 FilteringSelect 的存储。
我想实现这样的目标:
filteringSelect.query = {id: "12|13"};
或者
filteringSelect.query = {id: new RegExp("12|13")};
是否可以?
我使用 ItemFileReadStore 作为该 FilteringSelect 的存储。
如果您想更进一步,请参阅dijit.form.ComboBox / dijit.form.FilteringSelect 子类上的模糊匹配。然而,这是为了过滤用户输入。
要在过滤选择中打开/输入任何内容之前过滤掉条目,请继续您正在做的事情。但是,一个简单的字符串不会接受 OR 运算符,请使用RegExp
.
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'))
});
}
})