Dojo 无法在对话框中呈现组合框
我想显示一个包含dijit.ComboBox的弹出对话框,其中包含使用ajax请求或数据存储填充的数据。 我面临的问题是组合框总是被禁用 我选择的代码是:Dojo 无法在对话框中呈现组合框,dojo,Dojo,我想显示一个包含dijit.ComboBox的弹出对话框,其中包含使用ajax请求或数据存储填充的数据。 我面临的问题是组合框总是被禁用 我选择的代码是: <div dojoType="dojo.data.ItemFileReadStore" id="osTypeStore" data-dojo-id="osTypeStore" url="/AjaxPopulateOS.json"> </div>
<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>
任何想法尝试使用组合属性强制启用它
enabled:true,
除此之外,请使用Firebug或调试栏或类似工具进行检查:)我相信是因为其中没有任何项目?它是否完全变灰?是否设置了禁用的类参数 检查dijit.byId('osTypeStore')是否返回一个存储,以及其中是否包含项 如果是这种情况,请将代码更改为
store: 'osTypeStore'
请注意引号。这将迫使解析器将字符串计算为dijit,并且存储在读取时可能没有正确初始化为true变量。换句话说,在combobox构造函数中,javascript变量是未定义的
如果这没有帮助,请尝试在为对话框运行onShow后强制设置存储
dialog.onShow = function() {
dijit.byId('osType').set('store', dijit.byId('osTypeStore'));
}
我试过了,但还是不起作用。当组合框呈现在页面上而不是对话框上时,我在第一篇文章中发布的相同代码工作正常。目前,我使用的是html原生下拉列表,它们在对话框中工作正常。