2013-10-10 80 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

相关问题