作者:高朗1_114 | 来源:互联网 | 2022-12-09 18:44
使用Ag-Grid,用户可以拖动列以自己喜欢的方式对其进行排序。我需要允许用户保存他们的列顺序(到SQL后端),以便它成为他们的默认列顺序。我试图获得像这样的列名:
var cols = schedGridOptions.columnApi.getAllColumns();
for (col in cols) {
var colDef = col.getColDef();
console.log(colDef.headerName);
}
这是我找到的用于设置标题名称的示例,因此我尝试使其适应于获取标题名称。但是我得到这个错误:
Javascript运行时错误:对象不支持属性或方法“ getColDef”
也许我没有正确执行此操作?我是刚开始使用Ag-Grid的人。寻找建议。
1> Alien Techno..:
您正在寻找setColumnState()和getColumnState()。请参阅https://www.ag-grid.com/Javascript-grid-column-api/中的文档
在网格选项中,为gridReady和columnMoved设置事件处理程序。 https://www.ag-grid.com/Javascript-grid-events/
就像是:
gridOptiOns= {
rowData: myRowDataSource,
columnDefs: myColumns,
onGridReady: onGridReady,
onColumnMoved: onColumnMoved,
}
在列移动事件上,保存columnState。这是保存到本地存储的示例。更改它以保存到您的数据库。
onColumnMoved(params) {
var columnState = JSON.stringify(params.columnApi.getColumnState());
localStorage.setItem('myColumnState', columnState);
}
在网格就绪事件上,获取并还原网格状态。再次,更改它以从数据库中提取。
onGridReady(params) {
var columnState = JSON.parse(localStorage.getItem('myColumnState'));
if (columnState) {
params.columnApi.setColumnState(columnState);
}
}