reactjs - Ag-Grid - 如何在同一个网格中制作两个水平滚动条?

标签 reactjs ag-grid ag-grid-react

我在网格中有 20 列。我希望将网格分成两半,在左半部分我可以滚动浏览前 10 列,在右半部分我可以滚动浏览最后 10 列。换句话说,我希望同一个网格中有两个水平滚动条。可能吗?

最佳答案

您尝试实现的功能本身并不存在于 ag-Grid 中。一种解决方案是使用 pinned columns您在左侧固定 10 列的位置。问题是您无法滚动固定的列,因此您需要添加一些额外的 css 以便根据您的需要修改网格。

注意。这是非常棘手的解决方案:

将以下内容添加到您的 CSS 以使固定列可滚动(将宽度从 200px 更改为您想要的宽度):

.ag-pinned-left-cols-container {
  min-width: 200px !important;
  width: 200px !important;
  overflow: auto !important;
}

.ag-horizontal-left-spacer {
  width: 200px !important;
  max-width: 200px !important;
  min-width: 200px !important;
}

.ag-pinned-left-header{
  width: 200px !important;
  max-width: 200px !important;
  min-width: 200px !important;
  overflow: hidden !important;
}

您还需要确保固定列标题与固定列一起滚动。为此,您可以使用事件监听器:

document.getElementsByClassName('ag-pinned-left-cols-container')[0].addEventListener("scroll", this.runOnScroll, {passive: true});

runOnScroll =  function(evt) {
  document.getElementsByClassName('ag-pinned-left-header')[0].scrollTo(evt.srcElement.scrollLeft, 0)

Demo .

关于reactjs - Ag-Grid - 如何在同一个网格中制作两个水平滚动条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65771784/

相关文章:

javascript - Reactjs 项目中的 Eslint 修复警告

javascript - React Context API - child /消费者可以请求提供者更改值吗?

vue-router - 如何将 vue-router 链接添加为 ag-grid-vue 列?

javascript - 更改每隔一行的背景颜色

ag-grid - 如何使用 testing-library 测试 ag-grid 中的内容?

reactjs - 即使数据没有改变,我也可以使用 setState 强制重新渲染吗?我的 GUI 不会更新?

javascript - 自定义选择 react ,过滤列表

ag-grid - 防止在外部单击时以弹出模式关闭单元格编辑器

function - 如何在React功能组件中访问ag-Grid API(useState hook)?

javascript - 从 ag-grid 自定义渲染器更新 React 组件的状态