slack

テクてく Lotus 技術者 Slack に参加しよう!

2010/01/14

XPages Tutorial Part 44 : フィールドにドロップダウンコンボボックスを設定する

Adding A Dropdown Combobox Lookup To A Field {Original Source}

「Location」フィールドに対してノーツクライアントベースの開発では、おそらく @DbColumn 式を使って有効なロケーションをドロップダウンリストのとして表示させて選択させることが考えられます。
XPages でも同じようなことが「コンボボックス」コントロールを使用して実現できます。

「content_Person」カスタムコントロールを開き、右側のコアコントロールペインより「コンボボックス」コントロールを「Location」編集ボックスと置換えるようにドラッグインします。
まず最初に以前新規文書を作成する際に実装したようなフィールドを編集するときだけこのコントロールが表示されるように「読み取り専用」プロパティに JavaScript で値の計算を行います。

データタブに切り替え、データソースを「personDoc」、バインド先を「Location」フィールドに指定します。


ここでデフォルト値を設定することができます。今回、セッションスコープの「locationfilter」変数を使用することにします。この変数はは「Creat Person」アクションボタンをクリックしたときと同じロケーションの値が設定されています。きっとエンドユーザーが作成したい「Person」のロケーションが事前にそのようにデフォルト値が設定されていると便利だと思うからです。
では、ダイアモンドをクリックして、次の JavaScript を入力します。「sessionScope.locationfilter()」

コンボボックスのプロパティには「値」というプロパティセクションがあり、ここでドロップダウンボックスで表示させたい値を指定することができます。
「項目の追加」ボタンで値オプションを直接書き込むこともできます。また、「式項目の追加」ボタンで式を書くこともできます。両方を組み合わせるともできます。


式項目を使用する際にはラベルと値がパイプ(|)で分けられた文字を返す必要があります。また項目が複数ある場合には、ラベルと値のペアがカンマで区切られた形になります。
従来からの式言語の知識があれば簡単にできます。

「lkp_Locations」ビューでは 2 番目の列に下のようにロケーション名をパイプのシンボルで区切った列を作成してください。



では、「式項目の追加」ボタンをクリックし、次のコードを入力してください。
@DbColumn("","lkp_Locations",2);
最初のパラメータのブランクは現在のデータベースを使用する、2 番目のパラメータは参照するビューの名前、3 番目のパラメーターは実際の値を取得する列の番号です。

ではカスタムコントロールを保存して、プリビューしロケーションのデフォルト値が正しく表示されるか、ドロップダウンリストが正しく機能するかどうかを確認してください。

0 件のコメント:

コメントを投稿