如何自动调整 "auto group column"?

How to autosize the "auto group column"?

如何自动调整所有列的大小,包括 auto group column ?

以下代码仅调整标准列的大小,而不调整自动分组列的大小,因为 this.gridColumnApi.getAllColumns() 不会 return 自动分组列:

autoSizeAllColumns() {
  const allColumnIds = this.gridColumnApi.getAllColumns().map(c => c.colId)
  this.gridColumnApi.autoSizeColumns(allColumnIds)
},

您需要配置自己的自动列:

var gridOptions = {
    columnDefs: columnDefs,
    autoGroupColumnDef:{
        headerName:' autogroup',
        cellRendererParams:{
            suppressCount: true,
            checkbox:true
        }
    };

https://www.ag-grid.com/javascript-grid-grouping/#configuring-auto-column

来自文档:

Allows specifying the group 'auto column' if you are not happy with the default. If grouping, this column def is included as the first column definition in the grid. If not grouping, this column is not included.

我能够通过使用 colID(我了解到的是 'ag-Grid-AutoColumn')直接调整和自动调整自动分组列的大小。

具体大小:

onGridReady:function(params)
{
    params.columnApi.setColumnWidth('ag-Grid-AutoColumn', 250);
}

自动调整大小:

onFirstDataRendered:function(params)
{
    params.columnApi.autoSizeColumn('ag-Grid-AutoColumn');
}

如果要auto-size所有列(包括数据透视和分组列),则需要使用getAllGridColumns()

这是它在 React 中的样子(添加了忽略任何设置了 supressSizeToFit 属性 的列的代码):

function gridReady(params) {
  gridApi.current = params.api;
  columnApi.current = params.columnApi;
}

function autoSizeAll() {
  const colApi = columnApi.current;
  colApi.autoSizeColumns(
    colApi.getAllGridColumns().filter(column => !column.colDef.suppressSizeToFit),
  );
}