2012-10-31 4 views
5

Ich implementiere Projekt in extjs. Ich bin sehr neu zu extjs. Ich hatte Ansicht mit zwei Textfields Frage und Option erstellt und auch zwei Schaltflächen als ok erstellt und abbrechen.Wie füge ich Werte in den Speicher in extjs ein

Meine Ansicht Code:

Ext.create('Ext.form.Panel', { 
    title: 'Question-option', 
    width: 300, 
    bodyPadding: 10, 
    renderTo: Ext.getBody(),   
    items: [{ 
     xtype: 'textfield', 
     name: 'Question', 
     fieldLabel: 'Question', 
     allowBlank: false // requires a non-empty value 
    }, { 
     xtype: 'textfield', 
     name: 'Option', 
     fieldLabel: 'Option', 
     vtype: 'Option' // requires value to be a valid email address format 
    }, 
    {xtype: 'button', text: 'Ok'}, 
    {xtype: 'button', text: 'Cancel'} 
] 
}); 

auf OK klicken ich diese Textfelder Daten in den Speicher hinzufügen möchten.

So können Sie mir bitte vorschlagen, wie Sie Buttonclick-Ereignis schreiben, um alle diese Textfelder Daten in den Speicher hinzuzufügen.

+0

kann mir bitte jemand helfen? –

Antwort

5

diesen Speicher als Beispiel nehmen:

Ext.define ('model', { 
    extend: 'Ext.data.Model' , 
    fields: ['Question', 'Option'] 
}); 

var store = Ext.create ('Ext.data.Store', { 
    model: 'model' 
}); 

// Handler called on button click event 
function handler (button) { 
    var form = button.up('form').getForm(); 

    // Validate the form 
    if (form.isValid()) { 
    var values = form.getFieldValues(); 
    store.add ({ 
     Question: values.Question , 
     Option: values.Option 
    }); 
    } 
    else {} // do something else here 
} 

Sie die Formulardaten erhalten und dann diese Daten in den Speicher hinzuzufügen.

Cyaz

+0

Danke für Ihre Antwort. Und wenn ich auch diese eingefügte Frage und ihre Option in gridview hinzufügen möchte und dieses Optionseingabefeld als leeres Textfeld machen muss, um mehr Optionen für dieselbe Frage hinzuzufügen. Und zeige alle diese eingefügten Optionen in gridview an . Also auf welche Art und Weise sollte ich das ändern? –

+1

Befestigen Sie das Geschäft einfach an einem Gitterfeld. Zum Beispiel: Ext.create ('Ext.grid.Panel', {title: 'MyGrid', Breite: 300, Höhe: 300, store: store, Spalten: [{name: 'Question', dataIndex: 'Question' }, {Name: 'Option', dataIndex: 'Option'}]}); Wenn Sie diese Antwort die richtige gefunden haben, machen Sie es bitte;) – Wilk

+0

Wenn ich über onbuttonclick Ereignis einfügen, wird Anzeige nicht erhalten display.controller code is-Ext.define ('AM.controller.Users', { \t erweitern: 'Ext.app.Controller', Ansichten: [ 'user.List'] \t store: [ 'Users'] Modell: [ 'User'], init: function() { \t this.control ({ \t "button": { \t klicken: Ext.msg.alert ("Heloo")}});} onButtonClick: function (button) {var form = button.up ('form'). GetForm() ; if (form.isValid()) { \t var Werte = form.getFieldValues ​​(); \t store.add ({ \t Frage: values.Question, \t Option: values.Option \t}); \t} \t}}); –