我遗漏了一些非常基本的东西,我的comboxbox永远不会出现,有人可以看看下面的代码并告诉我我缺少的东西,我已经尝试了两种。选择和ComboBox作为类型,我使用dojo-1.5
var layout4 =
[
{ field: "abbr", name: "Abbreviation", width: 10 },
{ field: "name", name: "Name", width: 10 },
{ field: "capital", name: "Capital", width: '10'},
{ field: "combo", name: "combo", width: 10,
type: dojox.grid.cells.Select,
options: [ "new", "read", "replied" ],
editable:true
}
];
var store4 = { identifier: 'abbr',
label: 'name',
items: [
{ abbr:'ec', name:'Ecuador', capital:'Quito', combo:'' },
{ abbr:'eg', name:'Egypt', capital:'Cairo', combo:''},
{ abbr:'sv', name:'El Salvador', capital:'San Salvador', combo:''},
{ abbr:'gq', name:'Equatorial Guinea', capital:'Malabo', combo:''},
{ abbr:'er', name:'Eritrea', capital:'Asmara', combo:'' },
{ abbr:'ee', name:'Estonia', capital:'Tallinn', combo:''},
{ abbr:'et', name:'Ethiopia', capital:'Addis Ababa', combo:'' }
]};
storeData = new dojo.data.ItemFileReadStore(
{ data:store4}
);
// create a new grid:
var grid4 = new dojox.grid.DataGrid({
query: { abbr: '*' },
store: storeData,
clientSort: true,
rowSelector: '20px',
structure: layout4
}, document.createElement('div'));
// append the new grid to the div "gridContainer4":
dojo.byId("gridContainer4").appendChild(grid4.domNode);
// Call startup, in order to render the grid:
grid4.startup();
答案 0 :(得分:0)
尝试使用appendChild()
替换您使用此行的长行:
grid4.placeAt("gridContainer4");
您的代码相当混乱,没有看到整个事情,它有点难以调试。你在控制台上有任何错误吗?你能在JSFiddle上发表一个完整的例子吗?
答案 1 :(得分:0)
原因是我使用了ItemFileReadStore,并且不允许在商店中编辑项目,因此没有出现组合框。使用WriteStore可以解决这个问题。当然,使用readotre是愚蠢的。
现在我有一个不同的问题,我希望组合框出现在实现canEdit的网格中,但这是一个不同的问题。