2011-12-27 55 views
0

我錯過了一些非常基本的東西,我的comboxbox永遠不會出現,有人請看看下面的代碼,並告訴我我失蹤了什麼,我已經嘗試了兩種.Select和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

嘗試更換您用appendChild()這一個長線:

grid4.placeAt("gridContainer4"); 

您的代碼,而加擾並沒有看到這一點很難調試整個事情。你在控制檯上遇到任何錯誤嗎?你能在JSFiddle上發表一個完整的例子嗎?

+0

http://jsfiddle.net/nRMrA/17/ 這是我第一次使用jsfiddle,我粘貼在那裏,沒有什麼是showinf,但你可以看看代碼! 請注意,當我在瀏覽器中運行網格時,網格顯示正常,它只是不工作的組合框部分! – zaini 2011-12-28 12:32:45

0

原因是我正在使用ItemFileReadStore,並且它不允許編輯商店中的項目,因此ComboBox未出現。使用WriteStore可以解決這個問題。當然,使用readotre是愚蠢的。

現在我有一個不同的問題,我希望組合框出現在canEdit實現的網格中,但這是一個不同的問題。

相關問題