如何在Ag Grid中隐藏列?

时间:2018-07-13 17:49:12

标签: vue.js vuex ag-grid ag-grid-ng2 ag-grid-react

我正在从数据库中获取数据并通过在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, ' $1').replace(/^./, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); })
    };
  }));
  state.tableData.cols = cols;
  state.tableData.rows = payload;
 }
}

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

在您要隐藏的任何列上的列定义上都具有此属性。

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, ' $1').replace(/^./, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); })
    };
  }));

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