Extjs gets a `formpanel` which is dynamically created with a click button

I have an ExtJS View-Port panel

that contains a panel center

containing tablpanel

which I added gridpanel

in one tab, on this I put a button Add Person

in a tbar that will add a new tab formpanel

in my Reset button, I cannot access the form to Reset it.

Does anyone have the same question?

Please help how to make it work.

Ext.onReady(function() {
    // Ext.get(document.body, true).toggleClass('xtheme-gray');
    var myBorderPanel = new Ext.Viewport({
        title: 'Software Releases',
        // renderTo: document.body,
        renderTo: Ext.getBody(),
        layout: 'border',

        id: 'main',

        items: [{
            title: 'Center Region',
            region: 'center', // center region is required, no width/height specified

            tbar: [{
                text: 'Add person', // only when user have write priovilege.
                handler: function() {
                    var tabpanel = Ext.getCmp('main').findById('tabs');

                    var wtab = tabpanel.add({
                        //     // var addrelease_win = new Ext.Window({
                        url: 'reledit-submit.json',
                        id: 'addform0',
                        // height: 300, width: 400,
                        layout: 'form',
                        frame: true,
                        title: 'Add New Release',
                        closable: true,

                        items: [{
                            xtype: 'textfield',
                            fieldLabel: 'Name'
                        }],


                        buttons: [{
                            text: 'Save',
                            scope: wtab,
                            handler: function() {
                                wtab.getForm().submit({
                                    success: function(f, a) {
                                        Ext.Msg.alert('Success', 'It worked');
                                    },
                                    failure: function(f, a) {
                                        Ext.msg.alert('Warnning', 'Error');
                                    }
                                });
                            }
                        }, {
                            text: 'Reset',
                            scope: wtab,
                            handler: function() {
                                // Ext.getCmp('addform0').getForm().reset();
                                // tabpanel.getActiveTab.reset();
                                // Ext.getCmp('main').findById('addform').getForm().reset();
                                // this.getForm().reset();
                                // this.getForm().reset();
                                // Ext.Msg.alert('sdfsd', 'asdfsd ' + Ext.getCmp('addform0').getValue() + ' sdfsd');
                                this.findById('addform0').getForm().reset();
                                // Ext.Msg.alert('sdfsd', 'asdfsd ');
                            }
                        }]
                    });
                    // addrelease_win.show();

                    tabpanel.activate(tabpanel.items.length - 1);
                }
            }],
            xtype: 'tabpanel',

            id: 'tabs',

            activeTab: 0,

            items: [{
                title: 'Data',
                xtype: 'editorgrid',
                store: store,
                stripeRows: true,
                // autoExpandColumn: 'title',
                columns: [{
                    header: "Name",
                    dataIndex: "name",
                    width: 50,
                    sortable: true
                }, {
                    header: "DOB",
                    dataIndex: "dob",
                    sortable: true
                }]
            }],
            margins: '5 5 0 0',
        })
    })
});

      

+2


a source to share


1 answer


Doesn't work wtab.getForm().reset();

?

If not, use this.ownerCt

to get to the button container and then just pull up the chain until you get to the point where you can access the form.

UPDATE



The real problem is that her panel is with the generated form layout and not the FormsPanel.

Change layout:'form'

to xtype:'form'

and .getForm () should work.

+3


a source







All Articles