1

我有列面板可以在 AG-Grid 中添加/删除列。大约有 50 列,默认情况下显示 5 列,属性为 api.sizeColumnsToFit()。它工作正常,但是当用户尝试添加更多列并且列超出容器空间时会出现问题。它试图适应容器大小并搞砸了。

如果我删除了 api.sizeColumnsToFit(),一旦用户删除所有列并只保留 2-3 列,它确实适合大小,但在网格中显示空白,看起来不太好。

知道如何有条件地配置 ag-grid 以通过以下方式正常工作:

if columns_are_less_than_container_size
  api.sizeColumnsToFit()
else
  Do NOT apply sizeColumnsToFit
  rather show a horizontal scroll
4

1 回答 1

1

您可以onDisplayedColumnsChanged根据父元素的宽度来实现和计算。

而不是getActualWidth您可能想要定义最小宽度并使用getMinWidth.

onDisplayedColumnsChanged(params) {
    const gridWidth = document.getElementById("parent").offsetWidth;
    const widthVisibleColumns = params.columnApi.getAllColumns()
      .filter(c => c.isVisible())
      .map(c => c.getActualWidth())
      .reduce((a, b) => a + b);
    if (gridWidth > widthVisibleColumns) {
      params.api.sizeColumnsToFit();
    }
}
于 2020-02-12T14:12:17.167 回答