【问题标题】:Show/hide SelectItem in SmartGWT在 SmartGWT 中显示/隐藏 SelectItem
【发布时间】:2013-08-12 22:57:04
【问题描述】:

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

我这样做:

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

【问题讨论】:

  • selectItem组件保持隐藏
  • 试试selectItem.hide()
  • 不起作用,很奇怪,因为 setDisabled 工作正常
  • 你能发布你的代码吗?
  • 感谢 RAS,已经可以正常工作了,我有两个布局,我正在重绘一个。

标签: smartgwt


【解决方案1】:

以下代码有效,并在单击按钮时切换 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多