0

カスタム コントロールに配置した拡張ページ ダイアログ ボックスがあります。このダイアログ ボックスを使用してコスト センターを検索し、市場、コスト センター番号、コスト センター名などの情報を返します。

「選択」ボタンを押すと、ダイアログボックスが表示されます。ユーザーは、コスト センターを検索して選択します。[OK] ボタンを押すと、ダイアログ ボックスが閉じ、xPage のさまざまなフィールドが更新されます。

いくつか質問があります。

  1. 現在、CC の [選択] ボタンは、CC 内のダイアログ ボックス コントロールの名前を認識して参照する必要があります。これはベストプラクティスではないように思えます。私のエンド ユーザー プログラマーは、CC 内のそのダイアログ ボックス コントロールの ID を知る必要があります。「選択」ボタンが CC を「表示」し、CC が実際にダイアログ ボックス コントロールを表示する方法はありますか?

  2. 私の CC はカスタム プロパティを使用して、選択したコスト センターからのさまざまなドキュメント フィールドを保存します。[OK] ボタンは、これらのプロパティを使用して xPage のさまざまなフィールドを設定します。これもベストプラクティスではないようです。その CC を別のアプリケーションで使用したい場合は、[OK] ボタンのコードを編集する必要があるかもしれません。これに対処するより良い方法はありますか?xPage にドロップしたときに CC のプロパティを設定できるように、[OK] ボタンが押されたときに実行するコードを CC に伝える方法はありますか?

私が考えたことの 1 つは、[OK] ボタンで更新する必要があるフィールドのプロパティを持つことでしたが、それほど柔軟ではないようです。

4

1 に答える 1

0

IDを知る必要があるという問題については、タイプミスがあるかどうかはわかりませんが、cc内の選択ボタンがダイアログを開くためにダイアログのIDを必要としないのはなぜ悪いのかわかりません。セレクトがccの外にあるということですか?いずれにせよ、カスタムコントロールにプロパティを作成して、外部から何かを設定できるようにするなどの方法を試しましたか。

<xc:mycustomControl showDialog="false">

次に、外部で何かが発生した場合は、showDialogを変更してccを更新します。次に、cc内で、ページの読み込み前/後を設定して、showDialogがtrue/falseの場合に何が発生するかを判断できます。

2番目の問題では、これはドミノドキュメント構造を使用する必要があるように思えます。ダイアログが各部分を引き出して[OK]ボタンを更新するのではなく、ページにドミノドキュメントデータソースを配置します。ダイアログで何かを選択すると、このソースが指しているドキュメントが更新され、すべてのフィールドが必要なフィールドにバインドされます。このように、何かが選択された後、フィールドはドキュメントに含まれるものに更新され、ドミノドキュメントが同じフィールド名を持っている限り、はるかに再利用可能になります

于 2012-04-11T08:52:41.017 に答える