在SmartGWT中显示/隐藏SelectItem

时间:2013-08-12 11:44:50

标签: smartgwt

大家好我首先使用SmartGWT,我有一个带有setVisible(false)的SelectItem组件并添加到DynamicForm中。此DynamicForm将添加到布局中。当另一个组件发生变化时,我需要将SelectItem设置为true。

我这样做:

SelectItem -> setVisible(true);
DynamicForm -> .redraw();
Layout -> .redraw();

1 个答案:

答案 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