You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置igx-grid第一行不可编辑并修复最后一列删除图标不显示问题

问题1:实现第一行始终不可编辑

你可以通过事件拦截或者动态绑定编辑属性两种方式实现需求:

  • 方案1:编辑事件拦截(推荐,改动量最小)
    在igx-grid标签上绑定编辑进入事件:
<igx-grid 
  (cellEditEnter)="onCellEditEnter($event)"
  (rowEditEnter)="onRowEditEnter($event)"
  <!-- 其他原有属性保持不变 -->
>

在对应ts文件中添加事件处理方法:

import { IGridCellEditEventArgs, IGridRowEditEventArgs } from 'igniteui-angular';

// 拦截单元格编辑
onCellEditEnter(event: IGridCellEditEventArgs) {
  // 第一行索引为0,取消编辑操作
  if (event.rowIndex === 0) {
    event.cancel = true;
  }
}

// 若开启行编辑模式,需要额外添加该行编辑拦截
onRowEditEnter(event: IGridRowEditEventArgs) {
  if (event.rowIndex === 0) {
    event.cancel = true;
  }
}
  • 方案2:动态绑定列可编辑属性
    将所有可编辑列的[editable]属性绑定为判断函数:
<igx-column [editable]="checkRowEditable" [cellEditorTemplate]="workerPickerTemplate" field="name" header="Name"></igx-column>
<!-- 其余可编辑列都做相同的[editable]绑定 -->

ts文件中添加判断方法:

checkRowEditable = (rowData: any) => {
  // 根据主键wwid匹配行索引,避免行拖拽后索引判断错误
  const rowIndex = this.data?.approvers?.findIndex(item => item.wwid === rowData.wwid) ?? -1;
  return rowIndex !== 0;
}
问题2:垃圾桶图标列显示为空的修复

你的错误原因是:igx-column下直接写DOM元素不会被识别为单元格模板,必须用ng-template搭配igxCell结构指令包裹,才能将内容渲染到每一行的对应单元格中。
修正后的最后一列代码如下:

<igx-column width="100px">
  <ng-template igxCell let-rowData="rowData">
    <button class="btn btn-danger" igxButton="icon" type="button" (click)="deleteRow(rowData)">
      <igx-icon>delete</igx-icon>
    </button>
  </ng-template>
</igx-column>

如果修改模板后图标仍不显示,可检查对应模块是否已导入IgxIconModule,确保图标依赖加载正常。

内容的提问来源于stack exchange,提问作者Bozhidara Pachilova

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 05:57:03