IgrGrid では、IgrGridEditingActions によって行をホバーした際に編集や削除のボタンが表示され、操作が可能です。本記事では、サンプルデータに「編集可否」「削除可否」を持たせ、行ごとに 編集ボタンや削除ボタンの表示/非表示を切り替えます。

IgrGrid の設定

行クラスを条件付きで付与するには、rowClassesに TypeScript のハンドラーを指定します。特定の条件を満たす行に CSS クラスを適用することで、ActionStrip のボタン表示を制御できます。

<IgrGrid
        ....
        rowEditable={true}
        rowClasses={webGridRowClassesHandler}
      >
        ....
</IgrGrid>

ハンドラーの作成

このハンドラーは、キーが CSS クラス名、値が条件(true/false) を返す関数のオブジェクトです。

const webGridRowClassesHandler = {
  "row-disEditable": (row: any) => row.data["rowEditable"] === false,
  "row-disDeletable": (row: any) => row.data["rowDeletable"] === false,
};
  • row-disEditable は rowEditable が false の行に適用
  • row-disDeletable は rowDeletable が false の行に適用

CSS クラスの定義

付与した行クラスに応じて、ActionStrip 内のボタンを非表示にできます。

/* Action strip 内の edit ボタンを非表示にする */
.row-disEditable igx-grid-action-button[iconname="edit"] {
  display: none;
}

/* Action strip 内の delete ボタンを非表示にする */
.row-disDeletable igx-grid-action-button[iconname="delete"] {
  display: none;
}

実行結果

  • 編集不可の行では Edit ボタンが非表示
  • 削除不可の行では Delete ボタンが非表示

ダウンロード後、以下のコマンドで実行できます。

npm ci
npm run dev

関連ドキュメント

Tagged: