У меня есть панель инструментов Extjs ViewPort, которая содержит центральную панель, содержащую tablpanel, в которой я добавил gridpanel на одной вкладке, на этом я положил кнопку «Добавить человека» в tbar, что добавит новую вкладку FormPanel , в своей кнопке Reset я не могу получить доступ к Форме для ее сброса.ExtJs получает FormPanel, который создается динамически с момента нажатия кнопки.
У любого органа, столкнувшегося с такой же проблемой ... пожалуйста, помогите, как заставить его работать.
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' } ] }); }
Шон спасибо за помощь, wtab.getForm.reset() не работает, И я очень новой для ExtJS Infact JavaScript, не знаю, как именно использовать this.ownerCt , но я попробовал это. ownerCt(). getForm(). reset() и this.ownerCt.getForm(). reset() оба не работают ... – Sharad
Когда вы говорите «не работает», добавьте _how_, то есть точную сообщение об ошибке, которое вы получаете (и используете консоль). И ownerCt - свойство, а не метод. См. Официальные документы для Extjs: http://www.extjs.com/deploy/dev/docs/ Но настоящая ошибка здесь заключается в том, что вы не используете FormPanel, а Panel с макетом форм. Вместо использования 'layout: 'form'' используйте' xtype:' form''. Это должно дать вам доступ к методу 'getForm()' –
Спасибо, Шон, да сразу после изменения макета в xtype он работает. спасибо. – Sharad