ComboBox无法在datagrid中工作

时间:2011-12-27 17:57:10

标签: datagrid dojo widget

我遗漏了一些非常基本的东西,我的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();

2 个答案:

答案 0 :(得分:0)

尝试使用appendChild()替换您使用此行的长行:

grid4.placeAt("gridContainer4");

您的代码相当混乱,没有看到整个事情,它有点难以调试。你在控制台上有任何错误吗?你能在JSFiddle上发表一个完整的例子吗?

答案 1 :(得分:0)

原因是我使用了ItemFileReadStore,并且不允许在商店中编辑项目,因此没有出现组合框。使用WriteStore可以解决这个问题。当然,使用readotre是愚蠢的。

现在我有一个不同的问题,我希望组合框出现在实现canEdit的网格中,但这是一个不同的问题。