我正在从数据库中获取数据并通过在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;
}
}
如何隐藏操作列后面的下一列?
答案 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
成立,因此该列将被隐藏。