1

私は現在、既存の従来のドミノ Web アプリケーションを XPages に再設計するプロジェクトに取り組んでいます。このアプリケーションには、非常に多くのヘルパー ダイアログ ボックスを備えた Web フォームが含まれています。また、通知と検証と確認は、ダイアログ ボックスを介して行われます。

ダイアログ ボックスごとにカスタム コントロールを作成し、それを Xpage に追加して、ショーを呼び出すことができることはわかっています。ダイアログごとにファセットを持つ動的コンテンツ コントロールを使用して、動的に読み込むことさえできました。ダイアログ cc には onClientLoad に show() が含まれているためです。動的コンテンツ コントロールの内容を切り替えることで、簡単にダイアログを開くことができます。

それでも、これらすべてのカスタム コントロールを XPages に追加するのは効率が悪く、デザイン タブが本当に散らかっています。あなたの見解は?

ダイアログのコンテンツを動的に設定することをお勧めします (従来のドミノのように、ダイアログごとにフォームを定義します)。それは可能ですか?そうでない場合、カスタム コントロールを動的にロードすることは可能ですか (計算されたサブフォームを使用するように)?

また、確認ボックスには、確認ごとに異なるコードを実行するための [OK] ボタンが必要です。それを実装する最良の方法は何ですか?カスタム パラメータ「functionOnOk」を「dlgConfirm」カスタム コントロールに追加し、送信ボタンでそれを評価しますか?


PS: dojoType=dijit.DialogBox のパネルをまだ使用していますが、それらを extlib ダイアログ ボックスに変更します。確認ボックスとメッセージボックスには、クライアント側の dijit.Dialogs をコードでマークアップして使用していますが、XPages でのマークアップも希望しています。

4

1 に答える 1

0

DojoがDOM内のダイアログを移動し、ダイアログ内のSSJSが実行されないため、dijit.Dialogのパネルに問題があることはわかっています。それがdijit.DialogBoxの問題でもあるかどうかはわかりませんが、問題があるのではないかと思います。Jeremy Hodgeは、それを回避するためにいくつかのコードを実行しました。

ただし、拡張ライブラリコントロールを使用することを強くお勧めします。クライアント側のdijit.Dialogsはコーディングがはるかに困難である可能性が高く、SSJSとの対話を許可しません。拡張ライブラリコントロールで使用できないDojoプロパティを認識していません。また、拡張ライブラリコントロールを使用すると、CSJSまたはSSJSの両方でダイアログを開いたり閉じたりすることもできます。また、閉じるときに更新する領域を指定することもできます。

プロパティに関しては、プリロードは純粋に表示を高速化するためにあります。refreshOnShowプロパティを使用していますか?これにより、ダイアログが表示されるたびにURLまたはコンテンツが更新されます。ダイアログの拡張ライブラリの章には、すべてのプロパティをカバーする表があります。別のXPageまたは別のWebページを指すようにURLを設定できます。これにより、動的コンテンツコントロールを使用してパラメーターを渡し、表示するコンテンツを切り替えることができます。

[OK]ボタンの背後にあるコードに関しては、[拡張ライブラリ]ダイアログを使用すると、ダイアログの外部で使用できるすべての機能を利用できます。

于 2012-08-03T12:38:09.407 に答える