1

RequestFactoryEditor FrameworkUiBinderを使用したGWTプロジェクトがあります。RequestFactoryを使用してサーバーからデータが読み込まれると、データのステータスに基づいてページを読み取り専用にするかどうかを決定します。

inputこの時点で、ウィジェットまたはlabel(読み取り専用の場合)のいずれかをレンダリングしたいと思います。

理想的には、データに応じてウィジェットのレンダリングを入れ替えますが、データが読み込まれるまでに、レンダリング側が完了したように見えます(私が行ったデバッグに基づく)。

1つを非表示にしてページに2つのウィジェットを配置したくありません。これにより、DOM内のウィジェットの数が2倍になることは言うまでもなく、非表示のデータが他のデータを上書きするという問題がすでに発生しています。

これまでの考えの1つは、データを受信したときにremoveFromParent()を使用することでした。これを行うためのより良い方法はありますか?

ありがとう。

4

1 に答える 1

1

私の最初のアイデアは...

入力フィールドとテキストエリアでのみ機能します。ドロップダウン、ラジオボックス、またはチェックボックスがある場合、機能しません...

...css を介して入力フィールドのスタイルを設定して、そのように見えないようにし (境界線と背景色を削除する必要があります)、読み取り専用の場合は無効にします。読み取り専用でない場合は、css クラスを削除して、通常の入力フィールドのように表示し、編集可能にします。

このようなもの:

<style>
.label {
    background-color: white;
    border: 0px;
    color: black;
}
</style>

<input type="text" class="label" disabled value="Read only data"/>
<input type="text" value="Editable data"/>

別のアイデアは..

私がGWTを使用していたのはしばらく前です。しかし、データを取得する rcp 呼び出しからのコールバックにウィジェットを追加することはできませんか?

このようなもの:

ui Binder には、データのコンテナーがあります。

メソッドでは、取得したデータに応じて、コンテナー内のラベルまたは入力フィールドとしてデータを描画します。このメソッドは、データ リクエストからのコールバックで呼び出します。

于 2012-06-08T07:46:05.890 に答える