0

こんにちは、まず SmartGWT を使用している初心者です。setVisible(false) を持つ SelectItem コンポーネントがあり、DynamicForm に追加されています。この DynamicForm はレイアウトに追加されます。別のコンポーネントが変更されたときに、SelectItem を true に設定する必要があります。

私はこれをします:

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

1 に答える 1

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

于 2013-08-12T14:49:32.910 に答える