2013-10-10 105 views
0

GXT 2.25。GXT添加似乎不適用於LayoutContainer.removeAll()

我有一個帶有兩列的TableLayout的佈局容器的屏幕。左欄有一個樹形網格。右列是具有表格佈局的佈局容器,一列。

當我點擊樹形網格上的各種項目時,我想在右側的佈局容器中顯示與所點擊項目相匹配的可編輯字段。

當我第一次啓動表單並從服務器加載數據時,我添加了文本到佈局容器,它似乎很好。

加載文本後,我調用secondLayout.removeAll()來刪除所有項目。然後我點擊樹中的一個項目。選擇方法調用secondLayout.removeAll(),然後添加一個新的文本項「Loaded ...」進行測試。

private LayoutContainer      secondaryLayout; 

然後......

secondaryLayout.removeAll(); 
secondaryLayout.add(new Text("Loaded...")); 

想法?

回答

0

在對容器進行結構更改後,請務必調用(在GXT 2中)layout方法以重新運行佈局例程。另一種方法是將LayoutContainer配置爲在每次修改時重新運行佈局(使用setLayoutOnChange),但在這種情況下至少需要兩次重新佈局 - 一個用於removeAll,另一個用於添加每個新對象。可能是不必要的昂貴,所以當你完成更改時,更好地運行一次。 (值得指出的可能是GXT 2.2.5剛過兩年,2.2.6,2.3.0從那時起就被淘汰,並且它正在被GXT 3所取代。在GXT 3中,這裏的方法將forceLayout)。

+0

我忘了這件事。我們的GUI專家本週正在度假。他很久以前就向我展示過這件事。謝謝您的幫助。我知道GXT版本的東西,但我爲白癡工作,沒有人想改變任何東西,直到它壞了。 :( – Thom

相關問題