2012-10-31 14 views
5

Implementuję projekt w extjs. Jestem bardzo nowy w extjs. Utworzono widok z dwoma pytaniami i opcjami Textfields, a także utworzono dwa przyciski jako ok i anuluj.Jak wstawiać wartości w sklepie w extjs

Mój kod Widok:

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

przycisk OK kliknij chcę dodać te dane pól tekstowych w sklepie.

Czy możesz mi doradzić, jak napisać zdarzenie buttonclick, aby dodać wszystkie te dane pola tekstowego do sklepu.

+0

Czy ktoś może mi pomóc? –

Odpowiedz

5

Weź ten sklep jako przykład:

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 
} 

uzyskać dane formularza, a następnie dodać te dane do sklepu.

Cyaz

+0

Dziękuję za odpowiedź. Jeśli chcę dodać te wstawione pytanie i jego opcję w widoku siatki i trzeba wprowadzić tę opcję pole wprowadzania jako puste pole tekstowe, aby dodać więcej opcji dla tego samego pytania.I wyświetlić wszystkie te wstawione opcje w widoku siatki . Więc w jaki sposób powinienem to zmienić? –

+1

Wystarczy dołączyć sklep do panelu siatki. Na przykład: Ext.create ('Ext.grid.Panel', {title: 'MyGrid', width: 300, height: 300, store: store, columns: [{name: 'Question', dataIndex: 'Question " }, {nazwa: "Opcja", dataIndex: "Opcja"}]}); Jeśli znalazłeś tę odpowiedź poprawną, proszę ją załóż;) – Wilk

+0

kiedy wstawiam powyższe zdarzenie onbuttonclick, widok nie jest wyświetlany. Kod kontrolera to - Ext.define ("AM.controller.Users", { \t przedłużyć: 'Ext.app.Controller', widoki: [ ''] user.List \t sklepu: [ 'Users'] model: [ 'user'] startowych: function() { \t this.control ({ \t "Przycisk": { \t kliknij: Ext.msg.alert ("Heloo")}});} onButtonClick: function (button) {var form = button.up ("formularz"). GetForm() ; if (form.isValid()) { \t var values ​​= form.getFieldValues ​​(); \t store.add ({ \t Pytanie: values.Question, \t opcji: values.Option \t}); \t} \t}}); –

Powiązane problemy