ExtJS: удаление и чтение FormPanel в окно - PullRequest
0 голосов
/ 15 августа 2011

У меня проблема с удалением FormPanel из окна.

Вот моя форма, загружаемая в окне:

myForm = new Ext.FormPanel({
    frame: true,
    width: '100%',
    id: 'myform',
    layout: 'form',
    autoHeight: true,
    autoDestroy: false,
    region: 'center',
    monitorValid: true,
    items: [{
        xtype: 'textfield',
        id: 'mytextfield',
        fieldLabel: 'My Label',

    }]
 });

MyWindow =  new Ext.Window({
  title: 'MyWindow',  
    layout: 'auto',
    resizable: false,
  width: 717, 
    autoheight:true,
  id:'mywindow',
    closeAction:'hide',
  closable: true,
    items:[Ext.getCmp("myform")]


  });

Теперь яЯ хочу удалить эту форму и должен показать другую форму, и я делаю так в другом месте:

MyWindow.removeAll();
MyWindow.add(Ext.getCmp("myAnotherForm"));

Но это дает мне ошибку "Uncaught TypeError: Cannot read property 'events' of undefined" в ext-all-debug.js.

Есть что-нибудь, я здесь скучаю?

Спасибо.

1 Ответ

1 голос
/ 16 августа 2011

Вы можете удалить форму и добавить другую форму, используя следующий код:

Ext.onReady(function() {
    var btn = new Ext.Button({
        id : 'button',
        width : 100,
        height : 30,
        text : 'click me',
        listeners : {
            click : function(){
                var myanother = myAnotherForm;
                var anotherbtn = btn1;
                Mywindow.removeAll();
               Mywindow.add(myanother);
                Mywindow.add(anotherbtn);
                Mywindow.doLayout();
            }
        }
    });
    var btn1 = new Ext.Button({
        id : 'button1',
        width : 100,
        height : 30,
        text : 'Another button'
    });
    myAnotherForm = new Ext.FormPanel({
    frame: true,
    width: '100%',
    id: 'myanotherform',
    layout: 'form',
    autoHeight: true,
    autoDestroy: false,
    region: 'center',
    monitorValid: true,
    items: [{
        xtype: 'textfield',
        id: 'mytextfield',
        fieldLabel: 'My Another Label',
    }]
 });    
    myForm = new Ext.FormPanel({
    frame: true,
    width: '100%',
    id: 'myform',
    layout: 'form',
    autoHeight: true,
    autoDestroy: false,
    region: 'center',
    monitorValid: true,
    items: [{
        xtype: 'textfield',
        id: 'mytextfield',
        fieldLabel: 'My Label',
    }]
 });    
    var Mywindow = new Ext.Window({  
        title: 'MyWindow',       
        layout: 'auto',    
        resizable: false,  
        width: 317,     
        autoheight:true,   
        id:'mywindow',     
        closeAction:'hide',   
        closable: true,
        items : [myForm,btn]    
    });
    Mywindow.show();
});

Ниже приведен пример работы:

http://jsfiddle.net/kesamkiran/MVewR/1/

    * Click on 'click me' button then you will get the another form with another button.If you want to change only form,then you can remove the button.
...