値ピッカーでは、ユーザーはリストから 1 つ以上の値を選択できます。名前ピッカーでは、ユーザーはリストから 1 つ以上の名前を選択できます。値は、関連付けられたコントロールに適用されます。どちらのピッカーも似た機能を持ちます。
ピッカーは、for プロパティによって別のコントロールと関連付けられます。 関連付けられたコントロールが値を持つ場合、ピッカーはその値を初期選択値として使用します。ユーザーが [OK] ボタンをクリックしてピッカーダイアログを閉じると、選択された値が、関連付けられたコントロールに適用されます。
ピッカーは、関連付けられたコントロールが 1 つの値を受け入れるかそれとも複数の値を受け入れるかを認識し、それに従って適切な動作を行います。また、ピッカーは必要に応じて、複数の値を区切るための文字も認識します。
ピッカーはさまざまなソースのデータを表示でき、異なるレンダリングを行うことができます。
このリストにはデフォルトのプロバイダが表示されます。リストはグローバルベースまたはアプリケーションベースで拡張可能です。
名前ピッカーでも同様に、ユーザーが複数のディレクトリから選択することができます。これは、データプロバイダアグリゲータを使用することで実現されます。データプロバイダアグリゲータは、他の具体的な実装を代理として使用するカスタムデータプロバイダです。以下の例は、Domino® アドレス帳と、現在のデータベース内のビューの両方のデータを示しています。
データプロバイダによって返される値には、オプションのラベルが付いていることがあります。ピッカーはラベルを表示し、値を保管します。
dojoType プロパティと dojoAttributes プロパティを使用すると、その他のユーザーインターフェースを割り当てることができます。 例えば、以下の値を設定して、チェックボックスダイアログを適用することができます。
<xp:typeAhead mode="partial" minChars="1" preventFiltering="true">
preventFiltering プロパティを使用すると、入力補完においてデータのフィルタリングがデータプロバイダによって実行されるようになります。これは必須ではありませんが、使用することでコントロールのパフォーマンスが向上します。mode="partial" プロパティを使用すると、入力補完要求が発生した場合に、入力補完コントロールのみがトリガーされるようになります。
入力補完の候補式を指定して、ピッカーからの入力を取得します。
データプロバイダの実装により、開発者がサーバーサイド JavaScript を実行できるようになります。JavaScript をシンプルに保つため、このプロバイダはストリング値のみを返し、関連付けられたラベルは返しません。
var a = new Array("a","b","c","d","e","f","g","h")
return a
return "a,b,c,d,e,f,g,h"
dlgTitle: the title of dialog
control: the client id of the associated input text
url: the REST service URL
sources: an optional array of source (directory list)
カスタムピッカーレンダラを使用すると、これを拡張することができます。詳しくは、非常にシンプルな dijit が定義されている PickerCheckbox.js ファイルを参照してください。このファイルでは、REST サービスを呼び出す方法、REST サービスが入力テキストとやり取りする方法、データリストに基づいてチェックボックスを作成する方法が示されています。