2012-05-02 72 views
2

當我添加新的按鈕面板我想增加動態面板的大小?ExtJs 4如何動態增加面板的寬度?

Ext.onReady(function() { 

    Ext.tip.QuickTipManager.init(); 

    Ext.define('myPanel', { 
     extend:'Ext.panel.Panel', 
     bodyStyle : {"background-color":"#DFE8F6","padding":"2px"}, 
      width:100, 
     border:false, 
     viewConfig: 
     { 
      forceFit: true, 
     } 
     }); 

    new myPanel({ 
     id:'_panel', 
      renderTo:Ext.getBody() 
    }); 
     new Ext.button.Button({ 
     text:'Click Me', 
     renderTo:Ext.getBody(), 
     handler:function() 
     { 
      Ext.getCmp('_panel').add(new Ext.button.Button({text:'hello'})); 
      Ext.getCmp('_panel').doLayout(); 
     } 
    }); 
}); 

在這裏,寬度是100。 當我添加新按鈕面板的面板的寬度應增加按新的按鈕。 這裏按鈕的大小會因按鈕的不同文本而有所不同。

回答

2

由於ExtJS的」組件具有其寬度的功能,所以我覺得你可以試試:

handler:function() 
    { 
     var btn = new Ext.button.Button({text:'hello'}); 
     var panel = Ext.getCmp('_panel'); 
     panel.setWidth(panel.getWidth() + btn.getWidth()); 
     panel.add(btn); 
     panel.doLayout(); 
    } 
0

你有沒有設置maxWidthminWidth財產?例如,如果您將maxWidth設置爲100,並且動態嘗試setWidth(120),則它不起作用。

這是發生在我身上的事。我的Sencha Architect UI設計者設置了面板的最大寬度,我試圖比最大值高setWidth()

浪費了一小時這樣一個愚蠢的事情! :(