バージョン

更新 (igTreeGrid)

トピックの概要

目的

このトピックでは、igTreeGrid™ コントロールの更新機能の使用方法を説明します。

このトピックの内容

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

前提条件

以下の表は、このトピックを理解するための前提条件として必要な概念、トピック、および記事の一覧です。

  • 更新の概要 (igGrid): このトピックでは、igGrid™ コントロールの更新機能の使用方法を説明します。

概要

その他の機能と同様に、更新はフラット データ コントロールを拡張し、単一のグリッドで階層のサポートを追加します。igTreeHierarchicalDataSource の基本インスタンスにより可能になります。インライン編集または行編集ダイアログ機能のサポートについての追加があります。更に 16.1 バージョンから [新規行の追加] ユーザー インターフェイスが有効になり、TreeGrid の更新はルート レベルに新しいレコードの追加だけでなく、子レコードを指定したレベルへの追加を UI および API によりサポートします。

更新の UI

更新 UI の更新には、埋め込みの igTreeGrid の追加、更新、および削除機能が含まれます。これには [新規行の追加] ボタン、[子行の追加] ボタン、エディター、および [削除] ボタンなどがあります。

マウス UI

更新機能は igGrid と同様に動作します。また、ユーザーがホバーされている行の子として行を追加できます。ユーザーがグリッド レコードの上にある [新規行の追加] ボタンを使用して新しいルート レベル ノードを追加できます。新しい子ノードを追加するには、行をホバーし、[行の削除] ボタンの隣に表示される [子行の追加] ボタンをクリックします。新しい行 (編集モード) がターゲットの親行の下に表示されます。 [キャンセル] をクリックすると、行が削除され、データ変更が破棄されます。 [完了] をクリックすると、新規行がターゲットの親行の最後の子として追加されます。

注: ページングが有効で、ターゲットの親行の子が複数のページをスパンする場合、autoCommit オプションを使用してください。autoCommit が false の場合、新しい子行が現在のページで最後のレコードとして追加されます。autoCommit が true の場合、新しい子行が最後の子として追加され、新しい行を表示するためにグリッドのページが変更されます。

タッチ UI

タッチ環境ではホバー操作は利用できません。つまり、[子行の追加] ボタンを表示するには、行をスワイプまたはタップする必要があります。

Ignite UI CLI で更新機能が構成された igTreeGrid を追加

更新機能が構成された新しい igTreeGrid を簡単にアプリケーションに追加するには、Ignite UI CLI を使用します。

Ignite UI CLI のインストール:

npm install -g igniteui-cli

Ignite UI CLI インストール後、Ignite UI for jQuery プロジェクトを生成し、更新機能が構成された新しい igTreeGrid を追加してプロジェクトをビルドおよび公開するには、以下のコマンドを使用します。

ig new <project name>
cd <project name>
ig add tree-grid-editing newTreeGridEditing
ig start

すべての利用可能なコマンドおよび詳細な情報については、「Ignite UI CLI の使用」のトピックを参照してください。

更新の作業

更新機能を有効にすることで、グリッド内のデータを追加、削除、および更新することができます。

更新を有効にする

以下に、igTreeGrid を構成して更新をサポートする方法が示されています。

JavaScript の場合:

$("#treegrid").igTreeGrid({
                dataSource: data,
                height: 400,
                autoCommit: true,
                primaryKey: "employeeId",
                foreignKey: "supervisorId",
                initialExpandDepth: -1,
                autoGenerateColumns: false,
                columns: [
                    { headerText: "ID", key: "employeeId", dataType: "number" },
                    { headerText: "First Name", key: "firstName", dataType: "string" },
                    { headerText: "Last Name", key: "lastName", dataType: "string" },
                ],
                features: [
                {
                       name: "Updating"
                }
               ]
            });

注: 更新するには、プライマリ キー列の primaryKey オプションおよび dataType プロパティを設定する必要があります。設定されない場合、基本のデータ ソースは正しく操作しない可能性があります。

ASPX (MVC) の場合:

@(Html.Infragistics().TreeGrid(Model)
.ID("treegrid")
.PrimaryKey("employeeId")
.ForeignKey("supervisorId")
.UpdateUrl(Url.Action("UpdatingSaveChanges"))
.Columns(column =>
    {
        column.For(x => x.employeeId).HeaderText("ID").Width("100px");
        column.For(x => x.firstName).HeaderText("First Name").Width("200px");
        column.For(x => x.lastName).HeaderText("Last Name").Width("200px");
    })
    .Features(features => {
        features.Updating();
    })
    .Height("500")
    .DataSourceUrl(Url.Action("UpdatingGetData"))
    .DataBind()
    .Render()
    )

更新の構成

行の追加、更新、削除の継承オプションがあり、子の追加機能の構成のために新しいオプションがあります。

オプション 説明
enableAddChild (true) 行に子の追加を有効または無効にするかどうかを指定します。
addChildTooltip (null) 子の追加の ツールチップ テキストを指定します。
addChildButtonLabel (null) タッチ環境で [子の追加] ボタンのラベルを指定します。

更新 API

igGrid 更新の継承メソッドがあり、子の追加機能に関連する新しいメソッドが追加されました。

メソッド 説明
addChild 新しい子を特定の行に追加します。また、トランザクションを作成し、UI を更新します。
startAddChildFor 新しい子を特定の行に追加するために編集を開始します。
showAddChildButtonFor 特定の行に [子行の追加] ボタンを表示します。
hideAddChildButton [子行の追加] ボタンを非表示します。

新しい行をルート レベルに追加

ツリー グリッドのルート レベルに新規行をコードで追加するには、igGrid から継承された addRow API メソッドを使用します。以下の形式で値のペアを指定します: { column1Key: value1, column2Key: value2, ...} 。 以下は、上記のツリー グリッドの構成を使用し、新規行をルート レベルに追加する方法です。

$("#treegrid").igTreeGridUpdating("addRow", {employeeId: 3, firstName: "John", lastName: "Miller"});

子行を特定のレベルに追加

行を特定のレベルに追加するには、ツリー グリッドの更新 UI を使用するか、コードで addChild API メソッドを使用できます。このメソッドのパラメーターは、親キーおよび挿入する新しいレコード オブジェクトの指定を許可します。 以下は、上のツリー グリッド構成を使用して、API により子行を特定のレベルに追加する方法です。

$("#treegrid").igTreeGridUpdating("addChild", {employeeId: 8, firstName: "John", lastName: "Miller"}, 5);

注: 子行は親行の最後の子として追加されます。

行の削除

deleteRow API メソッドを使用して行を削除できます。単一の引数はプライマリ キー値です。

注: 親行の削除はすべての子も削除します。

$("#treegrid").igTreeGridUpdating("deleteRow", 1)

行の更新

updateRow API メソッドを使用して行を更新できます。

$("#treegrid").igTreeGridUpdating("updateRow", 5, {lastName: "Fuller"});

キーボード操作

編集時に以下のキーボード操作が可能です。

: このセクションは、デフォルト プロパティ設定でのキーボード操作について説明します。 これらの動作を変更する関連オプション:

editMode が行で行が編集モードの場合、以下のキー操作が有効です。

  • TAB: 行の次のエディターへフォーカスを移動。最後のエディターに達すると、[完了/キャンセル] ボタン (利用可能な場合) へ移動します。
  • ENTER: 変更が受け付けられて、次の行が編集モードに入ります。現在の行がグリッドの最後の行の場合、最初の行が編集モードに入ります。
  • ESCAPE: 変更がある場合は、元に戻されます。保留中の変更がない場合、行は編集モードを終了します。

editMode がセルでセルが編集モードの場合、以下のキー操作が利用できます。

  • TAB: 行の次のセルが編集モードに入ります。現在のセルが行の最後の場合、次の行の最初セルが編集モードに入ります。現在のセルがグリッド最終行の最後のセルの場合、最初の行の最初のセルが編集モードに入ります。
  • ENTER: 変更が受け付けられて、次の行の同じ列のセルが編集モードに入ります。現在のセルがグリッドの最後の行にある場合、最初の行の関連するセルが編集モードに入ります。(horizontalMoveOnEnter を参照してください)。
  • ESCAPE: 変更がある場合は、元に戻されます。保留中の変更がない場合、セルは編集モードを終了します。
  • UP/DOWN/LEFT/RIGHT: 矢印で編集セル内のカーソルを移動します (excelNavigationMode を参照してください)。

editMode が rowEditTemplate でセルが編集モードの場合、以下のキー操作が利用できます。 行編集テンプレート ダイアログが開いている場合:

  • ESCAPE: 変更は無視され、ダイアログを閉じます。
行の追加が有効な場合、以下のキーボード操作が可能です。

行の追加が編集モードの場合:

  • ENTER: 現在の値の行をグリッドに追加。
  • TAB: 行の次のエディターへフォーカスを移動。最後のエディターに達すると、[完了/キャンセル] ボタン (利用可能な場合) へ移動します。
行削除が有効な場合、以下のキーボード操作が可能です。

行が選択されている場合 (選択機能が有効でモードが行の場合):

  • DELETE: 選択行した行を削除します。

関連トピック

関連サンプル

オンラインで表示: GitHub