使用オプションexecMode="partial"
"部分実行モードを設定する":
<xp:button
value="Cancel"
id="button2">
<xp:eventHandler
event="onclick"
submit="true"
refreshMode="partial"
refreshId="inputText1"
execMode="partial">
</xp:eventHandler>
</xp:button>
のみボタン(ボタン2)は、部分的にサーバに更新=実行されます。部分的にリフレッシュされる部分ではありません(例ではinputText1)。この方法では、inputText1の値はサーバに送られず、サーバは元のデータでこの部分をレンダリングします。
このオプションの詳細については、「XPagesのマスター:XPagesアプリケーション開発のステップガイド」および920ページ以降の「第2版」のマニュアルを参照してください。
代替として、バックエンド文書から の値でリフレッシュ領域内のフィールドをリセットすることができます。 「古い」値とバックエンド文書を取得し、
document1.setValue("A", docOld.getItemValueString("A"))
と、現在のデータソースのフィールドに古い値を割り当てるためにvar docOld = document1.getDocument()
を使用します。
<xp:button
id="buttonCancelRestore"
value="Cancel Restore Values">
<xp:eventHandler
event="onclick"
submit="true"
refreshMode="partial"
refreshId="panelRefresh"
execMode="partial"
execId="buttonCancelRestore">
<xp:this.action><![CDATA[#{javascript:
var docOld = document1.getDocument();
document1.setValue("A", docOld.getItemValueString("A"));
document1.setValue("B", docOld.getItemValueString("B"));
}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
は完全に働きました。ありがとう! –
私のパネル内のフィールドが部分的にリフレッシュする(私はフィールドを表示/非表示にしている)場合、これは機能しません。部分リフレッシュが発生し、execMode = "partial"でキャンセルボタンをクリックすると、フィールド値はドキュメントの値に戻りません。あなたはこれを回避する方法を知っていますか? –
クライアント側のフィールドを非表示にする/表示することはできますか? –