0

カスタム CSS スタイルを単一の TextBox に適用できないのはなぜですか?

単一の TextBox にいくつかのエラー スタイルを設定しようとしています。次の実装の何が問題になっていますか?

初期化:

static final String STYLES = ErrorRes.INSTANCE.css().style();

@UiField TextBox box;
box.setStylePrimaryName(STYLES);

リソース インターフェイス

interface ErrorRes extends ClientBundle {
    static final ErrorRes INSTANCE = GWT.create(ErrorRes.class);

    @Source("Error.css")
    Style css();

    interface Style extends CssResource {
        @ClassName("gwt-TextBox-error")
        String style();
    }
}

エラー.css

.gwt-TextBox-error {
     border: 1px solid red !important;
}
4

1 に答える 1

2

ウィジェットでgwt-TextBox-errorスタイル名を取得したい場合は、設定する必要がありbox.setStylePrimaryName("gwt-TextBox");ます。これはデフォルトです。また、エラーが発生した場合、box.setStyleDependentName("error", true);HTMLはclass ="gwt-TextBoxgwt-TextBox-error"になります。エラースタイルをクリアするには、box.setStyleDependentName("error", false);

また

addStyleName("gwt-TextBox-error")removeStyleName("gwt-TextBox-error")同じように使用できます。

- -アップデート - -

だから、私はあなたのケースを実行しようとしました、そしてそれはうまくいきます。まず最初に、実行時にリソースからページにcssを挿入する必要があります。

ErrorRes.INSTANCE.css().ensureInjected();

の冒頭で使用しますonModuleLoad()

次に、エラースタイルを追加するには、: box.addStyleName(STYLES); を使用box.removeStyleName(STYLES);して削除します。

setStylePrimaryName()ペアを使用することはできませんsetStyleDependentName()。cssの名前が難読化されるため、cssがバンドルされています。

于 2013-03-12T14:26:29.003 に答える