要根据文本呈现列宽。跨过列的最小宽度(200px)后,缺少几个字符。
注意:列正在动态加载,因此我不能为每列添加width属性。
我正在使用Ag-Grid Enterprise版
感谢您的进阶。
答案 0 :(得分:0)
不能。您必须在columnDef
const columnDefs: Array<ColDef | ColGroupDef> = [
// ...
{
// ...
width: number,
}
];
您还可以在列定义中拥有cellStyle
或cellClass
属性。
您可以在此处查看API:https://github.com/ag-grid/ag-grid/blob/master/packages/ag-grid/src/ts/entities/colDef.ts
答案 1 :(得分:0)
我认为您有两种选择。
1)在渲染之前设置列宽。在渲染网格之前,请遍历数据对象以获取将在网格中显示的每个元素的最大长度,然后相应地设置columnDefs。要编辑columnDefs,您需要将其设置为变量,而不是常量,然后仅编辑对象数组。请参见How to change value of object which is inside an array using JavaScript or jQuery?。这种方法在计算宽度时会减慢初始渲染的速度。
2)设置渲染后的列宽。渲染网格后,使用gridApi.setColumnWidth()方法。 https://www.ag-grid.com/javascript-grid-column-api/
onGridReady(params) {
params.columnApi.setColumnWidth('someColumn', someColumnWidth, true);
}
使用这种方法,网格将开始更快地渲染,但是用户可能会看到列宽已调整。
答案 2 :(得分:0)
我不认为您要执行的操作不完全是,但是另一种选择是让文本截断并在鼠标悬停时显示它:
agGridColumnDef.cellRenderer = function(params) {
return "<span title='" + params.value + "'>" + params.value + "</span>";
};