在LayoutContainer.removeAll()之后,GXT添加似乎不起作用

时间:2013-10-10 19:51:00

标签: gwt gxt

GXT 2.25。

我有一个带有布局容器的屏幕,其中TableLayout有两列。左列有一个树形网格。右列是一个带有表格布局的布局容器,一列。

当我点击树状网格上的各种项目时,我想在右侧的布局容器中显示与所点击的项目匹配的可编辑字段。

当我第一次启动表单并从服务器加载数据时,我将文本添加到布局容器中,似乎没问题。

加载文本后,我调用secondLayout.removeAll()删除所有项目。然后我点击树中的一个项目。选择方法调用secondLayout.removeAll(),然后添加一个新文本项“Loaded ...”进行测试。

private   LayoutContainer                     secondaryLayout;

然后......

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

想法?

1 个答案:

答案 0 :(得分:0)

对容器进行结构更改后,请务必调用(在GXT 2中)layout方法重新运行布局例程。另一种方法是配置LayoutContainer以在每次修改时重新运行布局(使用setLayoutOnChange),但在这种情况下,至少需要两次重新布局 - 一次用于removeAll,另一次用于每次添加了新对象。可能是不必要的昂贵,所以当你完成更改时,最好一劳永逸地运行。

(值得指出的可能是GXT 2.2.5刚刚超过两年,从那时起2.2.6,2.3.0已经消失,并且它正在被GXT 3取代。在GXT 3中,这里的方法将是是forceLayout。)