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

如何在Angular DevExpress DataGrid的分组行中添加自定义图标?

在Angular DevExpress DataGrid中为分组行添加自定义图标

针对你需要为userFullName列分组后的表头行添加自定义图标的需求,下面提供两种可行实现方案:


方案1:使用groupCellTemplate自定义分组单元格

通过DevExpress内置的模板功能,直接重写分组行的内容,灵活添加图标和保留原有交互:

修改模板代码

<dx-data-grid #dataTable [dataSource]="primengDatatableHelper.records" [columnAutoWidth]="true" keyExpr="taskTicketId" showBorders="true" height="auto" [scrolling]="{useNative:true}" [allowColumnReordering]="true" noDataText="{{l('NoData')}}" [rowAlternationEnabled]="true" [(remoteOperations)]="{ sorting: true }" (onOptionChanged)="onOptionChanged($event)">
  <dxo-column-chooser [enabled]="true" [title]="l('HiddenColumns')" [emptyPanelText]="l('DragColumnHere')"></dxo-column-chooser>
  <dxo-group-panel [visible]="false"></dxo-group-panel>
  <dxo-grouping [autoExpandAll]="false" [allowCollapsing]="true" [contextMenuEnabled]="true" expandMode="buttonClick"></dxo-grouping>
  <dxo-pager [showPageSizeSelector]="true" [allowedPageSizes]="devExtremeDatatableHelper.predefinedRecordsCountPerPage" [showInfo]="true" [visible]="true" infoText="{2} {{l('DailyOperations')}}"></dxo-pager>
  <dxo-summary>
    <dxi-group-item column="userName"></dxi-group-item>
  </dxo-summary>
  
  <!-- 为目标分组列指定自定义模板 -->
  <dxi-column *ngIf="!isHiddenElement('daily-operations-dataGrid-column-user')" 
              dataField="userFullName" 
              [groupIndex]="1" 
              caption="{{l('User')}}"
              groupCellTemplate="userGroupTemplate">
  </dxi-column>

  <!-- 定义分组行的自定义模板 -->
  <div *dxTemplate="let groupData of 'userGroupTemplate'">
    <!-- 自定义图标(示例用Font Awesome,可替换为项目内的图标类/图片) -->
    <i class="fa fa-user-circle-o" style="margin-right: 8px; color: #40a9ff;"></i>
    <!-- 分组文本 -->
    <span>{{groupData.text}}</span>
    <!-- 保留默认的展开/折叠按钮 -->
    <dx-button [icon]="groupData.expanded ? 'chevron-down' : 'chevron-right'"
               (onClick)="groupData.collapseExpand()"
               style="margin-left: 8px;"></dx-button>
  </div>
</dx-data-grid>

模板参数说明

  • groupData.text:当前分组的显示文本
  • groupData.expanded:标记分组是否处于展开状态
  • groupData.collapseExpand():触发分组展开/折叠的内置方法

方案2:通过CSS伪元素添加图标

无需修改模板,仅通过CSS为特定分组列的分组行添加图标:

第一步:为分组列添加自定义类

<dxi-column *ngIf="!isHiddenElement('daily-operations-dataGrid-column-user')" 
            dataField="userFullName" 
            [groupIndex]="1" 
            caption="{{l('User')}}"
            cssClass="user-group-column">
</dxi-column>

第二步:添加CSS样式

/* 针对userFullName列的分组行添加图标 */
.dx-datagrid-group-row .user-group-column::before {
  content: "\f007"; /* 替换为你的图标字体编码(示例为Font Awesome用户图标) */
  font-family: "Font Awesome 5 Free"; /* 对应图标字体库 */
  font-weight: 400;
  margin-right: 8px;
  color: #40a9ff;
}

/* 可选:根据分组展开状态调整图标样式 */
.dx-datagrid-group-opened .user-group-column::before {
  color: #1890ff;
}

内容的提问来源于stack exchange,提问作者Khalig Heydarov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 02:22:41