有人可以向我解释一下为什么这个简单的直接代码不起作用,
var serviceStore = new dojo.data.ItemFileWriteStore({
data: {identifier: "serviceCode",items:[]}
});
//jsonObj is a json object that I obtain from the server via AJAX
for(var i = 0; i<jsonObj.length;i++){
serviceStore.newItem({serviceCode: jsonObj[i]});
}
var serviceFilterSelect = dojo.byId('serviceSelect');
serviceFilterSelect.store = serviceStore;
根本没有显示任何错误,但我的 id 为“serviceSelect”的组合框不显示任何选项,该组合是在我的代码的 html 部分中声明的,
<input dojoType = "dijit.form.ComboBox" id="serviceSelect"></input>
任何指向正确方向的指示将不胜感激。
首先你应该使用dijit.byId获取 dojo 小部件而不是dojo.byId。
此外,jsonObj 中的每个项目都应包含字段“name”。该字段将显示在组合框中。例如:
dojo.require("dojo.data.ItemFileWriteStore");
dojo.require("dijit.form.ComboBox");
var storeData = {
identifier: 'serviceCode',
items: []
}
var jsonObj = [{
serviceCode: 'sc1',
name: 'serviceCode1'
},
{
serviceCode: 'sc2',
name: 'serviceCode2'
}]
dojo.addOnLoad(function () {
var serviceStore = new dojo.data.ItemFileWriteStore({ data: storeData });
for (var i = 0; i < jsonObj.length; i++) {
serviceStore.newItem(jsonObj[i]);
}
var serviceFilterSelect = dijit.byId('serviceSelect');
serviceFilterSelect.attr('store', serviceStore);
});
和 HTML:
<select dojotype="dijit.form.ComboBox" id="serviceSelect" ></select>
看起来it works http://pastehtml.com/view/1ed30mw.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)