5.20221.842
wijmo.grid Class DataMap Wijmo API クラス

DataMap クラス

列のColumn.dataMap プロパティで使用するデータマップを表します。

データマップは、グリッドに自動検索機能を提供します。たとえば、 顧客のIDの代わりに顧客名、RGB値の代わりに色名を 表示できます。

以下のコードは、グリッドを製品のコレクションに連結してから、DataMap をグリッドの'CategoryID'列に割り当てて、グリッドにID自体ではなくカテゴリ名を表示します。

グリッドは、編集にもデータマップを利用します。 wijmo.input モジュールをロードした場合は、データマップされた列の編集時に、マップの値を含むドロップダウンリストが表示されます。

import { FlexGrid, Column } from '@grapecity/wijmo.grid';

// グリッドを製品に結合します
let flex = new FlexGrid({
    itemsSource: products
});

// IDの代わりにカテゴリ名を表示するようにCategoryID列をマップします
let col = flex.getColumn('CategoryID');
col.dataMap = new DataMap(categories, 'CategoryID', 'CategoryName');

一般に、データマップは列全体に適用されます。ただし、別の列の値に基づいて、 セルに使用するオプションを制限することもできます。たとえば、"Country"列と"City"列がある場合は、 現在の国に基づいて都市を制限することがよくあります。 このような「動的」データマップを実装する方法は、次の2つあります。

  1. DataMap が単なる文字列のリストである場合は、グリッドが編集モードになる 前に変更を加えます。 この場合、セルには表示される文字列が含まれ、 マップを変更しても同じ列の他のセルには影響しません。 次のサンプルに例を示します。 .
  2. DataMap が実際のマップの場合(キー値をセル内に格納し、対応する文字列を表示する)は、 ドロップダウンに表示する値を制限するためのフィルタを適用します。 DataMap には同じキーと値が格納されたままなので、 同じ列の他のセルはフィルタの影響を受けません。 次のサンプルに例を示します。 .

場合によっては、列挙を表す DataMap を作成することができます。 上記を実現するには、次のコードを使用できます。

// 指定された列挙型のDataMapを構築します
function getDataMap(enumClass) {
    let pairs = [];
    for (let key in enumClass) {
        var val = parseInt(key);
        if (!isNaN(val)) {
            pairs.push({ key: val, name: enumClass[val] });
        }
    }
    return new DataMap(pairs, 'key', 'name');
}

DataMapは、2つの異なる方法でキーを処理できます。 この機能は、serializeKeysプロパティによって制御されます。 デフォルトでは、キーの値が処理前に文字列に変換されます。 つまり、異なる値は、文字列表現が等しい場合、同じキー値を生成します。 この動作は、優先する動作となります。 キーが複雑なオブジェクトまたは複雑なオブジェクトの配列である場合は、 このモードを変更する必要があります。 詳細については、serializeKeysプロパティのドキュメントを参照してください。

Type parameters

  • K

  • V

階層

  • DataMap

コンストラクタ

constructor

  • new DataMap(itemsSource: any, selectedValuePath?: string, displayMemberPath?: string): DataMap
  • DataMap クラスの新しいインスタンスを初期化します。

    引数

    • itemsSource: any

      マップする項目を含む配列またはICollectionView

    • オプション selectedValuePath: string

      キー(データ値)を含むプロパティの名前。

    • オプション displayMemberPath: string

      項目のビジュアル表現として使用するプロパティ名。

    戻り値 DataMap

プロパティ

collectionView

collectionView: ICollectionView

マップデータを含むICollectionView オブジェクトを取得します。

displayMemberPath

displayMemberPath: string

項目のビジュアル表現として使用するプロパティ名を取得します。

isEditable

isEditable: boolean

ユーザーがDataMap に存在しない値を入力できるかどうかを示す値を取得または設定します。

DataMap を編集可能にするには、selectedValuePathdisplayMemberPath が同じ値に設定されている必要があります。

selectedValuePath

selectedValuePath: string

項目のキー(データ値)として使用するプロパティ名を取得します。

serializeKeys

serializeKeys: boolean

キー値を使用する前に文字列に変換するかどうかを示す値を取得または設定します。

デフォルト値はtrueです。

このプロパティはデフォルトでtrueに設定されています。 この場合、たとえば、同じ日付/時刻を定義する2つのDateオブジェクトを表すキー123(数値型)と‘123’(文字列型)、 およびプリミティブ値の2つの異なる配列([1,2,3]など)の場合、 これらの値は等しいキーペアとして扱われ、 同じ値にマップされます。

このプロパティをfalseに設定すると、キーの同等性は、トリプル等値演算子(===)を使用しているネイティブのMapクラスと同様に決定されます。 このモードは、キーがオブジェクトまたはオブジェクトの配列である場合に役立ちます。 この場合、DataMapはネイティブブラウザのMap実装を使用することに注意してください。 一部の古いモバイルブラウザやIE9/10では、マップインターフェイスを実装していませんため、 DataMapは独自の配列ベースの実装を使用します。 これにより、大きなデータ配列の場合にパフォーマンスに影響を与える可能性があります。

sortByDisplayValues

sortByDisplayValues: boolean

このDataMapを使用する列のデータを並べ替えるときに、 グリッドコントロールがマップ(表示)または未加工(キー)値を 使用するかどうかを決定する値を取得または設定します。

このプロパティのデフォルト値はtrueです。

メソッド

getDataItem

  • getDataItem(key: K): V
  • 指定されたキーに対応する項目を取得します。

    引数

    • key: K

      取得する項目のキー。

    戻り値 V

getDisplayValue

  • getDisplayValue(key: K): string
  • 指定されたキーに対応する表示値を取得します。

    引数

    • key: K

      取得する項目のキー。

    戻り値 string

getDisplayValues

  • getDisplayValues(dataItem?: V): string[]
  • マップのすべての表示値を含む配列を取得します。

    引数

    • オプション dataItem: V

      取得する表示項目に対応するデータ項目。 このパラメータはオプションです。 指定しない場合は、可能なすべての表示値が返されます。

    戻り値 string[]

getKeyValue

  • getKeyValue(displayValue: string, html?: boolean): K
  • 指定した表示値に対応するキーを取得します。

    引数

    • displayValue: string

      取得する項目の表示値。

    • オプション html: boolean

      検索する値をHTMLからプレーンテキストに変換するかどうか。

    戻り値 K

getKeyValues

  • getKeyValues(): K[]
  • マップのすべてのキーを含む配列を取得します。

    戻り値 K[]

onMapChanged

  • mapChanged イベントを発生させます。

    引数

    戻り値 void

イベント

mapChanged

mapChanged: Event<DataMap<any, any>, EventArgs>

マップデータが変更されたときに発生します。