2010-07-16 142 views
1

我有一個dojo TabContainer,它有一個BorderContainer子項,左邊區域和一箇中心區域ContentPanes。刷新dijit.layout.ContentPane的佈局

-TabContainer 
    -BorderContainer 
     -ContentPane (left) 
     -dojox.layout.ContentPane (center) 

我有它設置,使左邊的contentPane是可摺疊的(用一個苗條的contentPane取代它),它工作正常。然而,這個功能的想法是讓中心(dojox.layout.ContentPane)區域更寬,但是當左窗格摺疊到細長區域時,中心區域保持相同的寬度。

現在我知道我可以在ContentPane中心調用refresh(),但是這也刷新了內容,因爲中心ContentPane是通過href檢索的 - 我不知道它會因爲丟失對錶單數據的更改而丟失內容。

那麼,如何讓中心ContentPane刷新它的佈局,而不需要手動計算出合適的寬度並調用resize()

回答

0

你要如何更換左側窗格?你在使用addChild/removeChild方法嗎?如何改變左窗格的寬度而不是替換它?

+0

不,我只是看看我的標記,左邊的區域包含一個BorderConainer和一個ContentPane。默認情況下,該ContentPane是隱藏的。 BorderContainer有一個隱藏BorderContainer並顯示ContentPane的按鈕... ContentPane包含一個按鈕,它相反。我已經在樹中的所有佈局容器上嘗試過layout(),並且在交換BorderContainer和ContentPane可見性之後它不調整大小。 – 2010-07-20 05:38:52

+1

是否要切換2個小部件,邊框容器和內容面板的可見性?如果是這樣,那麼StackContainer就是你想要的。這將調用子窗口小部件的大小,但對於內容窗格的內容,您將不得不手動調整大小。 – Andy 2010-07-20 08:01:15

2

或者你可以使用dojox.layout.ExpandoPane。它是一個具有「點擊最小化」能力的ContentPane。

+0

我可以通過dojox.layout.ExpandoPane的修改版本來實現我想要的功能...我會嘗試一下。 – 2010-07-20 05:41:54