Ignite UI for Angular 9.1.6 バージョン時点での情報に基づいています。

特定の行のみ編集不可にしたい場合は、 全体としては編集可能にしておき、IgxGridComponentのonCellEditEnterで編集不可にする条件に合致するか判定し、その結果をもとにイベントをキャンセルします。

例えば、「Active」列の値がfalseの時に編集不可としたい場合は、以下のようになります。

<!-- app.component.html -->
<igx-grid #grid1 [data]="data" height="400px" width="100%" autoGenerate="true"
  [primaryKey]="'ID'" [rowEditable]="true"
  (onCellEditEnter)="cellEditStart($event)">
</igx-grid>
// app.component.ts
cellEditStart(event: IGridEditEventArgs){
  // 行IDが一致するデータを取り出す
  let rowData = this.data.find((r) => r.ID === event.rowID);
  // 見つかったら
  if(rowData !== undefined){
    // Active列の値がfalseの場合は、イベントをキャンセルする。
    if(!rowData.Active){
      event.cancel = true;
      return;
    }
  }
}

 

サンプル

 

リファレンス

 

Tagged:

製品について

Ignite UI for Angular