Web Components 複数列コンボ ボックスの概要

    複数列コンボ ボックスは、データ オブジェクトのプロパティ列を自動的に生成します。このコンポーネントは、ドロップダウンに埋め込まれたデータ グリッドのように大量のデータを可視化するコンボ ボックスであるという点で独特です。

    Web Components 複数列コンボ ボックスの例

    このサンプルは、ポップアップ ウィンドウの複数の列にデータを表示する IgcMultiColumnComboBoxComponent を作成する方法を示しています。

    依存関係

    Chart コンポーネントをインストールするときに core パッケージもインストールする必要があります。

    npm install --save igniteui-webcomponents-core
    npm install --save igniteui-webcomponents-grids
    npm install --save igniteui-webcomponents-inputs
    npm install --save igniteui-webcomponents-layouts
    

    モジュールの要件

    複数列コンボ ボックスを作成するには、以下のモジュールが必要です。

    import { IgcMultiColumnComboBoxModule } from 'igniteui-webcomponents-grids';
    import { IgcMultiColumnComboBoxComponent } from 'igniteui-webcomponents-grids';
    
    ModuleManager.register(
        IgcMultiColumnComboBoxModule
    );
    

    使用方法

    データ ソースのバインド

    オブジェクトを複数列コンボ ボックス コンポーネントに表示するには、DataSource プロパティをバインドする必要があります。これは、複雑なオブジェクトの配列の形式としてバインドできます。以下のコードは、データ ソース プロパティをバインドする方法を示します。

    以下のコード スニペットでは、"countryNames" コレクションはカスタム オブジェクトで満たされた any[] です。

    <igc-multi-column-combo-box id="comboBox" height="50px" width="400px">
    </igc-multi-column-combo-box>
    
    constructor() {
        let multiColumnComboBox = document.getElementById("comboBox") as IgcMultiColumnComboBoxComponent;
        multiColumnComboBox.dataSource = countryNames;
    }
    

    表示値とデータ値の設定

    複数列コンボ ボックスのバインドされた DataSource のさまざまなプロパティを構成して、コントロールの表示テキストとして機能し、選択が行われたときに既定値としても機能します。コントロールの textFieldvalueField プロパティをこれらを表現したいデータ項目のプロパティ名に設定します。

    以下のコード スニペットは、基本データ項目に "Country" および "ID" プロパティがある場合、これらのプロパティを設定する方法を示しています。

    <igc-multi-column-combo-box id="comboBox" height="50px" width="400px">
    </igc-multi-column-combo-box>
    
    constructor() {
        let multiColumnComboBox = document.getElementById("comboBox") as IgcMultiColumnComboBoxComponent;
        multiColumnComboBox.dataSource = countryNames;
        multiColumnComboBox.textField = "Country";
        multiColumnComboBox.valueField = ["ID"];
    }
    

    フィールドの設定

    デフォルトで、複数列コンボ ボックスは基本データ項目のすべてのプロパティを表示しますが、これはコンポーネントの fields プロパティを設定することで制御できます。このプロパティは表示されるプロパティを決定するために基本データ項目のプロパティ パスの string[] を取得します。

    以下のコード スニペットはこれを設定する方法を示します。結果のドロップダウンは ID および Country 列のみを表示します。

    <igc-multi-column-combo-box id="comboBox" height="50px" width="400px">
    </igc-multi-column-combo-box>
    
    constructor() {
        let multiColumnComboBox = document.getElementById("comboBox") as IgcMultiColumnComboBoxComponent;
        multiColumnComboBox.dataSource = countryNames;
        multiColumnComboBox.fields = ["ID", "Country"];
    }
    

    プレースホルダー テキストの設定

    複数列コンボ ボックス コンポーネントに選択がない場合にプレースホルダーとして表示するテキストを設定できます。placeholder プロパティを表示したい文字列に設定します。以下のコードは設定する方法を示します。

    <igc-multi-column-combo-box id="comboBox" height="50px" width="400px">
    </igc-multi-column-combo-box>
    
    constructor() {
        let multiColumnComboBox = document.getElementById("comboBox") as IgcMultiColumnComboBoxComponent;
        multiColumnComboBox.dataSource = countryNames;
        multiColumnComboBox.placeholder = "Please choose a country";
    }
    

    ソート モードの設定

    ユーザーは、ドロップダウンで列のヘッダーをクリックして、複数列コンボ ボックスに表示される列をソートすることができます。列は単一の列または複数の列でソートすることができ、昇順または降順に制限したり、3 ステートにしたり、ソートの構成方法も変更できます。コンポーネントの sortMode プロパティを使用して設定します。

    注: TriState のソート オプションを使用すると、ソートされた列のソートを解除できます。

    以下のコードは、複数列の 3 ステートでソートできるように複数列コンボ ボックスを設定する方法を示します。

    <igc-multi-column-combo-box id="comboBox" height="50px" width="400px">
    </igc-multi-column-combo-box>
    
    constructor() {
        let multiColumnComboBox = document.getElementById("comboBox") as IgcMultiColumnComboBoxComponent;
        multiColumnComboBox.dataSource = countryNames;
        multiColumnComboBox.sortMode = SortMode.SortByMultipleColumnsTriState;
    }
    

    API リファレンス