バージョン

イベントのリファレンス (行セレクター, igHierarchicalGrid)

トピックの概要

目的

このトピックでは、igHierarchicalGrid™ コントロールの行セレクターのイベントに関するリファレンスと、こうしたイベントの処理に関するコード例を示します。

前提条件

この題材を理解するのにあらかじめ必要となるトピック。

  • igHierarchicalGrid の概要: 機能、データ バインディング、要件、テンプレート、やりとりを含む、igHierarchicalGrid コントロールについての概念的情報を提供します。
  • igHierarchicalGrid の初期化: jQuery と MVCの両方を用いた igHierarchicalGrid を初期化する方法を説明します。

このトピックの内容

このトピックは、以下のセクションで構成されます。

行セレクター イベントのリファレンス

概要

igGridRowSelectors ウィジェットに固有なイベントは次の 3 つです。

  • checkBoxStateChanging
  • checkBoxStateChanged
  • rowSelectorClicked

checkBoxStateChanging イベントは取り消し可能なものであり、イベント ハンドラーが false を返す場合は伝達を停止できます。

行セレクター イベントのリファレンスのまとめ

igGridRowSelectors コントロールの各イベントの目的と機能。

プロパティ 説明 停止可能
rowSelectorClicked 行セレクターをクリックすると発生します。ハンドラー関数は、引数 evtui を取得します。ui 引数のオプションと各オプションの使用方法は以下のとおりです。 follow.
引数名 使用方法
ui.row クリックした行セレクターが置かれている行への参照を取得します。
ui.rowIndex クリックした行セレクターが置かれている行のインデックスを取得します。
ui.rowKey クリックした行セレクターが置かれている行のキーを取得します。
ui.rowSelector 行セレクター セルへの参照を取得します。
ui.owner igRowSelectors への参照を取得します。
ui.grid igRowSelectors コントロールが初期化される igGrid への参照を取得します。

checkBoxStateChanging 行セレクター チェックボックスの状態が変更されるときに発生します。ハンドラー関数は、引数 evtui を取得します。ui 引数のオプションと各オプションの使用方法は以下のとおりです。
引数名 使用方法
ui.row クリックした行セレクターが置かれている行への参照を取得します。
ui.rowIndex クリックした行セレクターが置かれている行のインデックスを取得します。
ui.rowKey クリックした行セレクターが置かれている行のキーを取得します。
ui.rowSelector 行セレクター セルへの参照を取得します。
ui.owner igRowSelectors への参照を取得します。
ui.grid igRowSelectors コントロールが初期化される igGrid への参照を取得します。
ui.currentState チェックボックスの現在の状態 (on または off) を取得します。
ui.newState チェックボックスの変更後の状態 (on または off) を取得します。
ui.isHeader クリックされているチェックボックスがヘッダーのチェックボックスであるかどうかを確認します。ヘッダーのチェックボックスがクリックされている場合、行に関連した引数は渡されません。

checkBoxStateChanged 行セレクターのチェックボックスの状態が変更された後に発生します。ハンドラー関数は、引数 evtui を取得します。ui 引数のオプションと各オプションの使用方法は以下のとおりです。
引数名 使用方法
ui.row クリックした行セレクターが置かれている行への参照を取得します。
ui.rowIndex クリックした行セレクターが置かれている行のインデックスを取得します。
ui.rowKey クリックした行セレクターが置かれている行のキーを取得します。
ui.rowSelector 行セレクター セルへの参照を取得します。
ui.owner igRowSelectors への参照を取得します。
ui.grid igRowSelectors が初期化される igGrid への参照を取得します。
ui.state チェックボックスの現在の状態 (on または off) を取得します。
ui.isHeader クリックされているチェックボックスがヘッダーのチェックボックスであるかどうかを確認します。ヘッダーのチェックボックスがクリックされている場合、行に関連した引数は渡されません。

コード例

コード例: jQuery で初期化時にイベント ハンドラーを割り当てる場合

初期化時に特定のイベント ハンドラー関数を共通のオプションとして igGridRowSelectors コントロールの rowSelectorClicked イベントに割り当てます。このイベントが発生すると、指定した処理関数が呼び出されます。ただし、コントロールをいったん破棄して作成し直した場合、同じハンドラーを再度割り当てておかない限り、このイベント ハンドラーが呼び出されることはなくなります。

コード

初期化時にイベント ハンドラー関数を rowSelectorClicked イベントに割り当てる場合のコード例。

JavaScript の場合:

$("#grid").igHierarchicalGrid({
    initialDataBindDepth: -1,
    dataSource: data,
    dataSourceType: "json",
    responseDataKey: "Records",
    autoGenerateColumns: true,
    autoGenerateLayouts: true,
    primaryKey: "ID",
    features: [
        {
            name: 'RowSelectors',
            enableCheckBoxes: true,
            rowSelectorClicked: function(evt, ui) {
                // Handle event  
            }
        },
        {
            name: 'Selection'
        }
    ]
});

コード例: jQuery および MVC で実行時にイベント ハンドラーを割り当てる場合

説明

Ignite UI for MVC を使用する場合、jQueryの on() メソッドを使用して、ランタイムにイベントハンドラーをアタッチできます。

JavaScript の場合:

$("#grid").on("iggridrowselectorsrowselectorclicked", function (e, args) {
        // Handle event  
    }
);

このオプションは、Ignite UI for MVC を使用する場合にも使用できますが、Ignite UI for MVC は、 AddClientEvent メソッドによって別の方法も公開します。最初のメソッド引数は、イベントのオプションの文字列名前です。第 2 の引数は、イベント ハンドラー関数の文字列名前です。

この方法は一般的なユース ケースに使用できますが、AddClientEvent メソッドの第 2 の引数も実行する JavaScript コードの文字列が可能で、スクリプト要素タグがない手順 2 の完全な JavaScript 関数を表現する文字列も可能です。

ASPX の場合:

    <%= Html.Infragistics()
        .Grid(Model)
        .ID("grid")
        .Features(features =>
            {
                features.RowSelectors().Inherit(true).AddClientEvent("rowSelectorClicked", "selectorClicked")
                features.Selection().Mode(SelectionMode.Row).MultipleSelection(true);
            })
        .AutoGenerateColumns(true)
        .AutoGenerateLayouts(true)
        .DataBind()
        .Render()
    %>

コード例: チェックボックスの状態変更イベントを取り消す場合

説明

このコード例では、checkBoxStateChanging イベントの取り消し方を示します。このコードが実行されると、指定した基準を満たしている特定の行が選択不可または未選択状態になります。

コード

この例では、ヘッダー行のチェックボックスにチェックが入っているかどうかを確認するコードが定義されています。checkBoxStateChanging イベントを呼び出すことにより、チェックボックスの選択を取り消せるようになります。この方法により、すべての行の一括選択を防止して、ユーザーに各行を個別に選択させることができるようになります。これにより、ユーザーは目的の行を一括して選択することができなくなり、各行を 1 つずつ別個に選択せざるをえなくなります。

JavaScript の場合:

$("#grid").igHierarchicalGrid({
    initialDataBindDepth: -1,
    dataSource: data,
    dataSourceType: "json",
    responseDataKey: "Records",
    autoGenerateColumns: true,
    autoGenerateLayouts: true,
    primaryKey: "ID",
    features: [
        {
            name: 'RowSelectors',
            enableCheckBoxes: true,
            checkBoxStateChanging: function (evt, ui) {
                       if (ui.isHeader && ui.newState === "on")
                           return false;
                   }
        },
        {
            name: 'Selection'
        }
    ]
});

関連コンテンツ

トピック

詳しくは、以下の各トピックを参照してください。

サンプル

このトピックについては、以下のサンプルも参照してください。

  • 行セレクター: igHierarchicalGrid で RowSelectors を使用する用法について説明します。

オンラインで表示: GitHub