我所有的搜索结果都出现了 sizeColumnsToFit
和 autoSizeColumns
,但这不是我想要的。
我的网格有很多列,所以可以水平滚动,这很好。
但我无法预先知道每列最宽文本所需的空间大小,因此希望网格自动调整所有列的大小以适应单元格中最长的文本行。
是否可以做到这一点?(就像在 html 表格列上有 nowrap
一样,不是让ag-grid
换行文本,而是隐藏过长的内容)
我所有的搜索结果都出现了 sizeColumnsToFit
和 autoSizeColumns
,但这不是我想要的。
我的网格有很多列,所以可以水平滚动,这很好。
但我无法预先知道每列最宽文本所需的空间大小,因此希望网格自动调整所有列的大小以适应单元格中最长的文本行。
是否可以做到这一点?(就像在 html 表格列上有 nowrap
一样,不是让ag-grid
换行文本,而是隐藏过长的内容)
网格调整大小: https://www.ag-grid.com/javascript-grid-resizing/
sizeColumnsToFit
- 该方法尝试将所有列压缩到视图中 - 不会出现水平滚动条
autoSizeAllColumns
- 该方法尝试使所有列适应数据大小 - 可以出现水平滚动条
// If you need to resize specific columns
var allColIds = params.columnApi.getAllColumns()
.map(column => column.colId);
params.columnApi.autoSizeColumns(allColIds);
// If you want to resize all columns
params.columnApi.autoSizeAllColumns();
autoSizeColumns()
的作用。 - Eliran Malka我经历了一番尝试,花费了不少时间才使它按照我期望的方式工作,也就是:
解决方法:
width
参数(需要手动调整以设置正确的值)onGridReady
中调用 gridApi.sizeColumnsToFit()
,它会自适应大小以利用可用空间,同时确保具有更大宽度的列会占用更多空间const gridOptions = {
...
columnDefs: [
{
...,
width: 100
},
{
...,
width: 50
},
...
],
...
onGridReady: (event) => event.api.sizeColumnsToFit();
};
onGridReady
函数中调用 gridApi.sizeColumnsToFit()
。该函数可使表格自适应列宽。 - Charney Kaye在列定义中,只需使用flex而不是width。网格将自动调整。
gridColumnApi.autoSizeColumns(allColumnIds, skipHeader);
flex=1
,列将根据内容和网格内可用空间自动调整宽度configure_default_column
方法为所有列设置默认配置。gb = GridOptionsBuilder.from_dataframe(df_glb)
gb.configure_default_column(
flex=1,
minWidth=100,
maxWidth=500,
resizable=True,
)