基本的にデータセルはセルが参考するデータ行の値たちの中でセルカラムに繋がったデータフィールドの値を表示する。 しかし、実際の値より有意味で理解しやすい値を代わりに表示することが必要な場合も少なくない。 カラムのlookupDisplayプロパティーをtrueに指定して、 いくつか関わりのあるプロパティー達を設定して実際の値と関わった他の値や他のフィールドの値をデータセルに表示することができる。
データカラムのlookupValuesに一つ以上の値が設定され、 lookupLabelsにlookupValuesの分だけの値たちが設定されたら、 データセルの値がlookupValues目録中に含まれた場合、 その位置に該当するlookupLabelsの値を表示する。
lookupValuesに該当する値がないか、lookupLabelsの項目の数が該当する位置より少なければ データセルの本来の値が表示される。
DataColumn.labelFieldを設定してデータセルの本来の値の代わりにlabelFieldで設定された他のフィールドの値たちをセルに表示することに使える。 labelFieldが違うフィールドを指定した場合には無視される。
labelFieldはDataSet並みで値を持ってくるもので、 一つのデータセットにいくつかのグリッドを繋いで、各グリッドのlookupの要求事項が別々ならいろんなlabelFieldが必要な場合もある。 また、labelFieldはサーバーからロードしたデータに含まれたのではなく、lookup要求事項の為に追加されたフィールドであることもある。
データ行が修正されるか、追加される場合label fieldの値を適切に変更することが必要である。 編集中に即時同期化が必要ならGridBase.onCellEditedイベンドを使うことができて、 行の編集後に同期化するくらいならGridDataSet.onRowUpdated, GridDataSet.onRowInsertedなどのイベントハンドラのないでlabel fieldの値を変更すればいい。
ルックアップソースはデータセルでルックアップする値たちをデータセットではない自分の空間に生成して管理する客体である。 LookupSourceクラスはルックアップソースが具現すべきのメソッド達を定義したアブストラクトクラスで、 現在具現されたルックアップソースはLookupTreeがある。 LookupSource客体はLookupSource.lookupメソッドを通して一つ以上のキーの値についてのルックアップの値を変換する。 また、fillやaddメソッドを呼び出して適切な時点でルックアップの値たちを追加するか、再設定することができる。
詳しい説明はLookupTreeのヘルプトピックとLookupDataサンプルを参考する。