2014-03-04 101 views
0

我想動態地在面板內添加面板,因爲我不知道我需要添加的面板數量。動態地在面板內添加面板自動調整

,如果我做

panel.insert(<panel to be added>); 

父面板配置了橫向盒佈局也能正常工作。

但是,如果添加面板的總寬度超出了父面板寬度,那麼會出現溢出並出現水平滾動條。

相反,我所看到的是它應該將面板自動添加到下一行,如果它達到父面板的寬度。

上述問題的任何解決方案,可能是我需要在這裏使用一些其他佈局,但不能確定。

感謝

+0

你試過設置內面板的寬度嗎? –

回答

0

面板佈局應當是表與指定的列數。 請看下面的代碼爲父面板

{ 
    xtype: 'panel', 
    itemId: 'productListPanel', 
    height: 500, 
    width: 600, 
    layout: { 
     type: 'table', 
     columns: 3 
    }, 
    autoScroll: true 
} 

現在我可以任意數量的子面板添加到它,請參閱下面的代碼。

for (var i = 0; i < 10; i++) { 
      var panel = Ext.create('Ext.panel.Panel', { 
       width: 190, 
       height: 150, 
       padding: 10,     
       cls: 'myPanel', 
       title: "Child Panle"+i 
       }); 
       parentPanel.insert(panel); 
      } 

這解決了我的問題,希望它有助於某人。

謝謝

0

我有一個想法,但你應該在你的代碼試圖然後讓我知道結果。基本上,將佈局類型設置爲auto

var resultsPanel = Ext.create('Ext.panel.Panel', { 
    title: 'Results', 
    width: 600, 
    height: 400, 
    id: 'panel_one', 
    renderTo: Ext.getBody(), 
    layout: { 
     type: 'auto',  // Arrange child items vertically 
     align: 'stretch', // Each takes up full width 
     padding: 5 
    } 
}); 

var opanel = Ext.getCmp('panel_one'); 
console.log(opanel); 
opanel.add([ 
    { 
     xtype: 'panel', 
     title: 'Inner Panel', 
     width: Ext.getCmp('panel_one').getWidth(), 
     height: 100 
    } 
]); 

opanel.add([ 
    { 
     xtype: 'panel', 
     title: 'Inner Panel', 
     width: Ext.getCmp('panel_one').getWidth() 
     height: 100 
    } 
]); 
+0

它以垂直方式添加面板,我不想那樣...我將父面板佈局更改爲Table,並且它已解決。 –