2012-10-30 9 views
5

Mam w swojej klasie bazowej combobox, gdzie tylko skonfigurować właściwość "fields". W ten sposób:Napełnianie Extjs Combobox z danymi statycznymi

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'} 
        ] 
       }) 
      }), 
...] 

Jak mogę przekazać tylko tę właściwość danych do tego zestawu? Próbowałem poniższy kod, ale nie działa:

comboTest.store.loadData(value); 

gdzie wartość zawiera tablicę takiego:

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

żadnych błędów, ale combobox otwiera nic.

Odpowiedz

8

Spróbuj config:

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

Inną alternatywą jest wymieniony w samym 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 jest obowiązkowe dla combobox. Spróbuj ustawić valueField w swoim combobox.

8

mam to zadziałało, używając:

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

Wiem, że to pytanie jest bardzo stary, ale na wszelki wypadek ktoś przychodzi szuka odpowiedzi, które działa po wyjęciu z pudełka; dla mnie to było to.

+0

Podoba mi się to rozwiązanie ze względu na swoją prostotę. Odwołanie do podręcznika API, gdzie jest to opisane: http://docs.sencha.com/extjs/4.1.3/#!/api/Ext.form.field.ComboBox-cfg-store Poszukaj konfiguracji sklepu. –