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; } } }
サンプル
リファレンス
- onCellEditEnter