大家好我首先使用SmartGWT,我有一个带有setVisible(false)的SelectItem组件并添加到DynamicForm中。此DynamicForm将添加到布局中。当另一个组件发生变化时,我需要将SelectItem设置为true。
我这样做:
SelectItem -> setVisible(true);
DynamicForm -> .redraw();
Layout -> .redraw();
答案 0 :(得分:2)
以下代码段工作,并在按钮单击时切换SelectItem的可见性。
但是请注意,这可能会导致UI跳跃,因为其他表单控件会流入和流出以填补空白。
更好的方法是启用/禁用注释中指示的组件,这不需要重绘。
final DynamicForm form = new DynamicForm();
form.setWidth100();
form.setHeight100();
final SelectItem selectItem = new SelectItem("sel", "Select");
selectItem.setValueMap("First", "Second", "Third");
ButtonItem buttonItem = new ButtonItem("btn", "Set");
buttonItem.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
selectItem.setVisible(!selectItem.getVisible());
form.redraw();
// uncomment following two lines and comment above two lines to enable/disable
// boolean isDisabled = Boolean.TRUE.equals(selectItem.getDisabled());
// selectItem.setDisabled(!isDisabled);
}
});
form.setFields(selectItem, buttonItem);
处理表单布局的其他方法:
http://www.smartclient.com/smartgwt/showcase/#layout_form_sections
http://www.smartclient.com/smartgwt/showcase/#layout_form_splitting