[]
DataMap クラスの新しいインスタンスを初期化します。
マップする項目を含む配列またはICollectionView 。
キー(データ値)を含むプロパティの名前。
項目のビジュアル表現として使用するプロパティ名。
マップデータを含むICollectionView オブジェクトを取得します。
項目のビジュアル表現として使用するプロパティ名を取得します。
ユーザーがDataMap に存在しない値を入力できるかどうかを示す値を取得または設定します。
DataMap を編集可能にするには、selectedValuePath とdisplayMemberPath が同じ値に設定されている必要があります。
表示値が、ユーザーがデータ マップ コンボ ボックスに入力した検索文字列と一致するかどうかを判断するために使用されるコールバックを取得または設定します。
コールバックが指定されていない場合、FlexGrid.caseSensitiveSearch プロパティの値に基づいて検索が実行されます。 この関数を指定することで、 一致する値を決定する任意のロジックを提供できます。
コールバックが指定されている場合は、データ マップのルックアップ リストの値ごとに呼び出されます 一致したテキストに対して true を返します。
項目のキー(データ値)として使用するプロパティ名を取得します。
キー値を使用する前に文字列に変換するかどうかを示す値を取得または設定します。
デフォルト値はtrueです。
このプロパティはデフォルトでtrueに設定されています。 この場合、たとえば、同じ日付/時刻を定義する2つのDateオブジェクトを表すキー123(数値型)と‘123’(文字列型)、 およびプリミティブ値の2つの異なる配列([1,2,3]など)の場合、 これらの値は等しいキーペアとして扱われ、 同じ値にマップされます。
このプロパティをfalseに設定すると、キーの同等性は、トリプル等値演算子(===)を使用しているネイティブのMapクラスと同様に決定されます。 このモードは、キーがオブジェクトまたはオブジェクトの配列である場合に役立ちます。 この場合、DataMapはネイティブブラウザのMap実装を使用することに注意してください。 一部の古いモバイルブラウザやIE9/10では、マップインターフェイスを実装していませんため、 DataMapは独自の配列ベースの実装を使用します。 これにより、大きなデータ配列の場合にパフォーマンスに影響を与える可能性があります。
このDataMapを使用する列のデータを並べ替えるときに、 グリッドコントロールがマップ(表示)または未加工(キー)値を 使用するかどうかを決定する値を取得または設定します。
このプロパティのデフォルト値はtrueです。
指定されたキーに対応する項目を取得します。
取得する項目のキー。
指定されたキーに対応する表示値を取得します。
取得する項目のキー。
マップのすべての表示値を含む配列を取得します。
取得する表示項目に対応するデータ項目。 このパラメータはオプションです。 指定しない場合は、可能なすべての表示値が返されます。
フィルタリングされたすべての項目を含む配列を取得します。
フィルタリングするデータ項目。 このパラメータはオプションです。 指定しない場合は、コレクション ビューのすべての項目が返される必要があります。
指定した表示値に対応するキーを取得します。
取得する項目の表示値。
検索する値をHTMLからプレーンテキストに変換するかどうか。
マップのすべてのキーを含む配列を取得します。
mapChanged イベントを発生させます。
マップデータが変更されたときに発生します。
列のColumn.dataMap プロパティで使用するデータマップを表します。
データマップは、グリッドに自動検索機能を提供します。たとえば、 顧客のIDの代わりに顧客名、RGB値の代わりに色名を 表示できます。
以下のコードは、グリッドを製品のコレクションに連結してから、DataMap をグリッドの'CategoryID'列に割り当てて、グリッドにID自体ではなくカテゴリ名を表示します。
グリッドは、編集にもデータマップを利用します。 wijmo.input モジュールをロードした場合は、データマップされた列の編集時に、マップの値を含むドロップダウンリストが表示されます。
import { FlexGrid, Column } from '@mescius/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つあります。
場合によっては、列挙を表す 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プロパティのドキュメントを参照してください。