Dojo Select小部件不填充数据存储区中的内容

时间:2010-10-27 15:28:20

标签: javascript html dojo

我一直在尝试连接以简单地将数据存储区(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");

我认为你会使用商店字段使这个小部件“启用数据”,但我可能会弄错。如果有人可以提供帮助,将不胜感激。 谢谢

1 个答案:

答案 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}时,它也会在布局窗口小部件的子窗口小部件上自动调用调用。)