我一直在尝试使用 ItemFileReadStore 的查询功能来过滤选择小部件的可选选项列表,而且我的查询似乎对小部件没有影响。查询是通过另一个选择小部件的 onChange 事件完成的,我的目标是当一个小部件选择一个值时,另一个小部件不再包含该值作为选项)。看看dojo 文档站点上的“Codependent FilteringSelect/ComboBox widgets”示例,这似乎相当简单。但是遵循这个例子让我没有任何结果。我尝试使用的小部件如下:
var sel1 = new dijit.form.Select({
id:"sel1",
name: "sel1",
required: true,
style: "width: 170px;",
query: {value: "*" },
store: selStore
},"sel1");
我还有另一个类似的小部件 sel2,它使用相同的商店。我的“onChange”事件都有以下代码:
dojo.connect(element, 'onChange', function(event){
dojo.forEach([sel1, sel2], function(element){
if(element.getValue() !== event){
element.attr("query", "{value: !" + event + "}");
console.log("querying", element, element.query);
element.store.fetch();
}
});
因此,我得到的控制台打印输出返回了正确的元素,并且 element.query 的格式为:{value: !val1},但在任何一个选择小部件的下拉列表中都没有改变。如果有人能提供任何帮助,将不胜感激。谢谢