我一直在尝试连接以简单地将数据存储区(ItemFileReadStore)连接到dijit.form.Select小部件而无法连接。如果我使用选项字段来填充它,那么窗口小部件工作正常,但是当我使用存储字段填充它时,窗口小部件会出现,但其内容为空。我试图使用的代码如下:
var readStore = new dojo.data.ItemFileReadStore({
label: "label",
identifier: "value",
//items: nestedSortOptions1
items: [{label : "Lab1", value: "Val1"}]
});
var sel1 = new dijit.form.Select({
id:"sel1",
name: "sel1",
required: true,
style: "width: 170px;",
//options: nestedSortOptions1
store: readStore
},"sel1");
我认为你会使用商店字段使这个小部件“启用数据”,但我可能会弄错。如果有人可以提供帮助,将不胜感激。 谢谢
答案 0 :(得分:4)
您走在正确的轨道上,但就您发布的特定示例而言,有两个问题:
首先,您传递给ItemFileReadStore的属性应该进一步嵌入data
属性中,即:
var readStore = new dojo.data.ItemFileReadStore({
data: {
label: "label",
identifier: "value",
items: [
{ label: "Lab1", value: "Val1" }
]
}
});
(请参阅ItemFileReadStore参考指南页面上的数据属性说明:http://www.dojotoolkit.org/reference-guide/dojo/data/ItemFileReadStore.html)
其次,在实例化Select之后,你忽略了调用sel1.startup()
。结果startup
正是Select从商店中提取的地方。
(在您依赖startup
解析HTML声明的窗口小部件实例的实例中自动调用dojo.parser
方法;当布局窗口小部件的{{1}时,它也会在布局窗口小部件的子窗口小部件上自动调用调用。)