css ag网格水平滚动

sdnqo3pr  于 2023-04-13  发布在  其他
关注(0)|答案(6)|浏览(200)

我在angular应用程序中使用了ag-grid ng。当列数超过时,没有得到水平滚动条。

ecfdbz9o

ecfdbz9o1#

你确定是因为列的数量吗?我有同样的问题,解决方案是取消每列的固定选项。
例如,如果你有这个:

{headerName: "Athlete", field: "athlete", width: 150, pinned: 'left'}

必须是:

{headerName: "Athlete", field: "athlete", width: 150}
pieyvz9o

pieyvz9o2#

你可以说

gridOptions.api.sizeColumnsToFit();

这将设置列的宽度,从而删除水平滚动。

hgqdbh6s

hgqdbh6s3#

你确定没有把 gridOptions 对象的 suppressHorizontalScroll 属性设置为true吗?

var gridOptionsTop = {
    columnDefs: columnDefs,
    // don't show the horizontal scrollbar on the top grid
    suppressHorizontalScroll: false,
    enableSorting: true,
};
7eumitmz

7eumitmz4#

尝试在ag-grid中的每个columnDefs中放入minWidth,这可以确保每个columnDefs都有一个与之关联的宽度属性,因此如果它溢出,下面会出现一个水平滚动条

columnDefs = [

{minWidth : 100, field: 'a', headerName: 'test1'},

{minWidth: 120, field: 'b', headerName: 'test2'},

{minWidth: 80, field: 'c', headerName: 'test2'}

]
mhd8tkvw

mhd8tkvw5#

在我的应用程序中,我们使用ag-grid,我们有3列固定(左)。我的问题是,我可以看到水平滚动条,但当你向右滚动时,滚动会停止两个或三个列短。你可以使用鼠标滚轮或轨迹板继续滚动到最后,看到所有列。

**解决方案:**Chrome/Brave

.ag-horizontal-left-spacer {
    visibility: hidden;
}

**解决方案:**Safari

.ag-horizontal-left-spacer {
    visibility: hidden;
}

.ag-body-horizontal-scroll-viewport {
    overflow-x: auto;
}
r8xiu3jd

r8xiu3jd6#

如果您使用以下工具,您可能会发现:

gridOptions.api.sizeColumnsToFit();

有些页面需要很长时间才能显示出来。我发现API上有一个标志来显示宽度是否脏。因此我实现了一个检查方法:

refreshTable() {
    if (this.gridColumnApi.columnController && this.gridColumnApi.columnController.bodyWidthDirty) {
      this.gridApi.sizeColumnsToFit();
      if (this.refreshAttempts) {
        this.refreshAttempts--;
        setTimeout(() => {
          this.refreshTable();
        }, 100);
      }
    } else {
      this.refreshAttempts = 0;
    }
  }

我把它放在一个带有初始化器的服务类中,刷新尝试也被传递到这个类中。我建议循环两次,你可能也想玩一下超时延迟,因为你可能不希望有这么大的延迟。
在一些更复杂的网格上出现这种情况的原因是,一次 Shuffle 会产生一些工作,但宽度仍然是脏的,下一次 Shuffle 可能会有所帮助。

相关问题