现在,我看到指定列网格宽度的唯一方法是向列定义添加宽度属性,例如:
columnDefs: any[] = [
{
headerName: 'ID',
field: 'id',
width: 50,
type: 'numericColumn'
}
];
但是正如我们在下面的例子中看到的,网格的列并没有占据屏幕显示的整个宽度。
https://stackblitz.com/edit/ag-grid-bss-test-nnojxg?file=app%2Fapp.component.ts
我希望能够为每列设置百分比宽度,但我找不到如何执行此操作。
使用 width: 10%
无效。
有什么解决方法吗?
最佳答案
不,默认情况下是不可能的。您只能以绝对数字设置宽度、minWidth 和 maxWidth。在 AgGrid 中使用动态宽度最简单的方法是使用 this.gridOptions.api.sizeColumnsToFit();
,因此它们为中的现有值采用最小宽度(根据 colDef 中指定的宽度)他们的细胞。
你可以尝试根据window-width手动计算width
(onInit),然后重新初始化AgGrid。但我不建议这样做,因为当用户调整窗口大小时,您需要再次计算(在 Window-Resize-HostListener 中)并重新初始化网格。 debounce-time 可能是可能的(所以当用户拖动他的浏览器 Angular 落时你不会每毫秒重新初始化),但它有点hacky并且最后你会得到很多非常难以调试的东西和难以维护的代码。
关于angular - 有没有办法以百分比指定 ag-grid 列宽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50336813/