如何在 Ag Grid 中隐藏列?

How to hide column in Ag Grid?

我正在从数据库中获取数据并通过将手动操作按钮列添加到 Ag-Grid 来填充它。现在,第一列包含那些操作按钮,第二列包含 _id 我想隐藏第二列,但在 ag-grid 文档中,他们仅提供有关隐藏静态数据列的信息。这是我的代码,其中包含 def.

setMasterData (state, payload) {
if (!payload) {
  state.tableData.rows = [];
} else {
  // First column holds the buttons to delete the row item
  let cols = [{
    field: '',
    headerName: 'Actions',
    width: 200,
    colId: 'params',
    cellRendererFramework: 'gridEditButtons'
  }];
  cols = cols.concat(Object.keys(payload[0]).map(x => {
    return {
      field: x,
      headerName: x.replace(/([A-Z])/g, ' ').replace(/^./, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); })
    };
  }));
  state.tableData.cols = cols;
  state.tableData.rows = payload;
 }
}

如何隐藏操作栏后面的下一栏?

将此属性添加到要隐藏的列定义中。

hide: true

更新

如果您提供的 map 代码有效,那么您应该能够像下面这样实现。

cols = cols.concat(Object.keys(payload[0]).map(x => {
    return {
      field: x,
      hide: x === '_Id',    // this will be true when your field == '_Id'
      headerName: x.replace(/([A-Z])/g, ' ').replace(/^./, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); })
    };
  }));

hide 提供的条件将对 _Id 为真,因此,该列将被隐藏。

 ...gridColumnApi.setColumnVisible('name of column', false);

一种方法是根据列名关闭可见性。