2012-10-30 72 views
5

我在我的基類中有一個組合框,我只配置「fields」屬性。像這樣:用靜態數據填充Extjs組合框

items: [ 
     comboText = Ext.create('Ext.form.ComboBox', { 
       width: 150, 
       padding: '0 20 0 0', 
       displayField: 'label', 
       store: Ext.create('Ext.data.Store', { 
        fields: [ 
         {type: 'string', name: 'label'}, 
         {type: 'string', name: 'fieldName'} 
        ] 
       }) 
      }), 
...] 

我怎樣才能只傳遞數據屬性到這個組合? 我嘗試下面的代碼,但不工作:

comboTest.store.loadData(value); 

其中值包含一個這樣的數組:

[ 
    {"label":"First name", "fieldName":"firstname"}, 
    {"label":"Birth date", "fieldName":"birthdate"} 
] 

沒有錯誤,但組合框打開什麼。

回答

8

試試這個配置:

 xtype:'combo', 
     fieldLabel:'Division', 
     name:'division', 
     queryMode:'local', 
     store:['A','B','C'], 
     displayField:'division', 
     autoSelect:true, 
     forceSelection:true 

另一種選擇是正確的docs of the ComboBox上市:

// The data store containing the list of states 
    var states = Ext.create('Ext.data.Store', { 
     fields: ['abbr', 'name'], 
     data : [ 
      {"abbr":"AL", "name":"Alabama"}, 
      {"abbr":"AK", "name":"Alaska"}, 
      {"abbr":"AZ", "name":"Arizona"} 
      //... 
     ] 
    }); 

    // Create the combo box, attached to the states data store 
    Ext.create('Ext.form.ComboBox', { 
     fieldLabel: 'Choose State', 
     store: states, 
     queryMode: 'local', 
     displayField: 'name', 
     valueField: 'abbr', 
     renderTo: Ext.getBody() 
    }); 
1

valueField是強制性的combobox。嘗試在組合框中設置valueField

8

我得到這個使用工作:

xtype:'combo', 
    fieldLabel:'Division', 
    name:'division', 
    valueField: 'division', 
    queryMode:'local', 
    store:['A','B','C'], 
    displayField:'division', 
    autoSelect:true, 
    forceSelection:true 

我知道這個問題是真的老了,但以防萬一有人來尋找一個開箱的答案;對我來說就是這樣。

+0

我喜歡這個解決方案,因爲它的簡單性。 API說明書的參考描述:http://docs.sencha.com/extjs/4.1.3/#!/api/Ext.form.field.ComboBox-cfg-store查找商店配置。 –