0

我想显示一个弹出对话框,其中包含使用 ajax 请求或数据存储填充的数据的 dijit.ComboBox。我面临的问题是组合框总是被禁用。

我选择的代码是:

<div dojoType="dojo.data.ItemFileReadStore" id="osTypeStore" data-dojo-id="osTypeStore" url="/AjaxPopulateOS.json">
                        </div>
                        <select id="osType" data-dojo-type="dijit.form.ComboBox"
                            data-dojo-props="
                                id:'osType',
                                store: osTypeStore,
                                placeHolder: 'Select a schdule type'" >
                        </select>

组合框错误

有任何想法吗

4

2 回答 2

1

我相信是因为里面没有物品?它是否完全变灰 - 并且设置了 Disabled 类参数?

检查 dijit.byId('osTypeStore') 是否返回一个商店,并且其中有项目。

如果是这种情况,请将您的代码更改为

store: 'osTypeStore'

注意引号。这会强制解析器将字符串评估为 dijit - 并且存储在读取时可能未正确初始化为真正的变量。换句话说,在组合框构造函数中 - javascript 变量是未定义的。

如果这没有帮助,请尝试在为您的对话框运行 onShow 后强制设置存储。

dialog.onShow = function() {
     dijit.byId('osType').set('store', dijit.byId('osTypeStore'));
}
于 2012-08-19T15:33:49.900 回答
0

尝试使用组合的属性强制启用它

enabled: true,

除此之外,使用 Firebug 或调试栏或类似的东西检查它:)

于 2012-08-18T07:57:49.190 回答