2016-05-02 14 views
0

Ist ein Datenspeicher erforderlich, um eine Combobox mit Daten zu füllen? Nach der Überprüfung der Dokumentation scheint es so zu sein, aber ich möchte bestätigen, dass ich ExtJS neu bin.Ist ein Datenspeicher für die Combobox erforderlich?

Die Optionen der Auswahlliste werden von jedem Ext.data.Store aus ausgefüllt, einschließlich Remote Stores. Die Datenelemente in dem Geschäft werden dem angezeigten Text und dem Hintergrundwert jeder Option über die Konfigurationen valueField bzw. displayField zugeordnet. - http://docs.sencha.com/extjs/4.0.7/#!/api/Ext.form.field.ComboBox

Ich habe mehrere Comboboxen in einer Form; Alle davon enthalten verschiedene Optionen. Bedeutet das, dass ich für jede Combobox einen Datenspeicher erstellen muss?

Ext.onReady(function() { 
    console.clear(); 
    Ext.create('Ext.data.Store', { 
     storeId: 'confiurationDetailsStoreForRead', 
     fields: ['value', 'name'], 
     data: [{ 
      "value": "72001", 
      "name": "Enabled" 
     }, { 
      "value": "72002", 
      "name": "Disabled" 
     }, { 
      "value": "72003", 
      "name": "Required" 
     }] 
    }); 
    var configurationDetailsPanel = Ext.create({ 
     xtype: 'form', 
     url: '/employeeSearchResult', 
     items: [{ 
      xtype: 'combobox', 
      fieldLabel: 'Config Type', 
      store: Ext.getStore('confiurationDetailsStoreForRead'), 
      queryMode: 'local', 
      displayField: 'name', 
      valueField: 'value' 
     }], 

     buttonAlign: 'left', 
     buttons: [{ 
      text: 'Search', 
      handler: function() { 
       console.log('Search Pressed'); 
      } 
     }, { 
      text: 'Reset', 
      handler: function() { 
       this.up('form').getForm().reset(); 
      } 
     }] 
    }); 

    //Main Container 
    Ext.create({ 
     xtype: 'panel', 
     renderTo: Ext.getBody(), 
     defaultType: 'button', 
     layout: { 
      type: 'vbox', 
      align: 'stretch' 
     }, 
     items: [configurationDetailsPanel] 
    }); 
}); 

Der obige Code ist ein Beispiel für eine Combobox in meiner Form. Ich würde gerne wissen, ob es eine Möglichkeit gibt, die Daten in der Combox-Konfiguration zu speichern (anstatt einen Speicher zu erstellen und dann auf diesen Speicher in der Konfiguration zu verweisen)? Oder ist der Ansatz, den ich im Code verwendet habe, der einzige Ansatz?

Vielen Dank im Voraus.

Antwort

1

Ja! Sie können den Laden direkt in die Combobox setzen:

   { 
       xtype: 'combobox', 
       fieldLabel: 'Config Type', 
       displayField: 'name', 
       queryMode: 'local', 
       store: { 
        fields: [ 
         'value', 
         'name' 
        ], 
        data: [ 
         { 
          value: '72001', 
          name: 'Enabled' 
         }, 
         { 
          value: '72002', 
          name: 'Disabled' 
         }, 
         { 
          value: '72003', 
          name: 'Required' 
         } 
        ] 
       }, 
       valueField: 'value' 
      } 
1

Es kann auch

{ 
     xtype: 'combobox', 
     fieldLabel: 'Config Type', 
     queryMode: 'local', 
     store: [ 
      [ '72001', 'Enabled' ], 
      [ '72002', 'Disabled' ], 
      [ '72003', 'Required' ] 
     ] 
    } 
wie dies geschehen
Verwandte Themen