我正在使用ag-grid最新版本(^ 20)。我已经尝试了单元格渲染,但是不确定如何显示字符串而不是枚举。
在sample.component.html代码中
<ag-grid-angular
#agGrid style="width: 100%; height: 350px;"
class="ag-theme-balham"
[gridOptions]="gridOptions"
[columnDefs]="columnDefs"
[showToolPanel]="showToolPanel"
[defaultColDef]="defaultColDef"
[rowData]="rowData">
</ag-grid-angular>
在sample.component.ts代码中
export const PROJECT_LIST_COLUMNS = [
{ headerName: 'Code', field: 'code', width: 120 },
{ headerName: 'Name', field: 'name', width: 200 },
{ headerName: 'Customer', field: 'customerName', width: 200 },
{ headerName: 'Manager', field: 'manager', width: 150 },
{ headerName: 'Project Group', field: 'projectGroup', width: 150 },
{
headerName: 'End Date',
field: 'endDate',
width: 130,
},
{
headerName: 'Status', //what I want is from the below project status file I want the string
field: 'status',
width: 150,
cellRenderer: data => {
return data.value ? data.value : 'not found';
},
},
];
这是我的project-status.ts文件
export enum ProjectStatus {
Queue = -3,
Hold= -2,
Proposal = -1,
NS= 0,
WIP= 1,
Completed = 2,
Posted= 3,
Closed = 4,
}
不确定如何实现。请帮助
答案 0 :(得分:1)
使用ProjectStatus[data.value]
获取枚举值的文本。
{
headerName: 'Status',
field: 'status',
width: 150,
cellRenderer: data => {
return (data.value !== null && data.value !== undefined)
? ProjectStatus[data.value] : 'not found';
},
}
注意:请确保将条件更新为(data.value !== null && data.value !== undefined)
,否则ProjectStatus.NS
将显示not found
。
参考: How does one get the names of TypeScript enum entries?
详细参考:: TypeScript Handbook - Enums
反向映射
除了创建带有属性名称的对象 对于成员,数字枚举成员还从 枚举值到枚举名称。例如,在此示例中:
enum Enum { A } let a = Enum.A; let nameOfA = Enum[a]; // "A"