如何根据 Header 名称而不是字段名称隐藏和显示 ag-grid 列

HOw to hide and Show ag-grid columns based on Header name rather than field name

我正在尝试 hide/show 使用 ag-grid 基于标题名的列。正如您在下面看到的,我使用 setColumnsVisible 来实现相同的目的。但我需要基于 headername amd 而不是字段。

{ headerName: 'Rating Name', field: 'newRatingName', filter: true}
this.gridColumnApi.setColumnsVisible(['newRatingName', 'newRatingReleaseDate'], false);true }

还有其他方法可以实现吗?

如果您有权访问 columnApi,那么我建议您使用 columnApiheaderName 获取列,然后使用它来设置可见性。

例如:

const ratingNameColumn = this.gridColumnApi.getAllColumns().find(x => x.colDef.headerName == 'Rating Name');

this.gridColumnApi.setColumnVisible(ratingNameColumn, false);

Here's 给你的 StackBlitz。

您可以在列定义中使用隐藏 属性 来有条件地隐藏您的列。这是一个布尔值 属性,可以设置为 true/false。例如:

{ headerName: 'Rating Name', 
  field: 'newRatingName', 
  filter: true,
  hide: this.shouldHide(),
}
shouldHide = () => (true);