Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dojo 无法在对话框中呈现组合框_Dojo - Fatal编程技术网

Dojo 无法在对话框中呈现组合框

Dojo 无法在对话框中呈现组合框,dojo,Dojo,我想显示一个包含dijit.ComboBox的弹出对话框,其中包含使用ajax请求或数据存储填充的数据。 我面临的问题是组合框总是被禁用 我选择的代码是: <div dojoType="dojo.data.ItemFileReadStore" id="osTypeStore" data-dojo-id="osTypeStore" url="/AjaxPopulateOS.json"> </div>

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

我选择的代码是:

<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原生下拉列表,它们在对话框中工作正常。