reactjs - ag-grid:“如何滚动到最后一个已知位置”?
问题描述
Ag-Grid 提供了该方法ensureIndexVisible(index, 'middle');
使用该方法可以轻松滚动到选定的索引。但是如何从用户那里获得滚动位置的最后一个已知索引?
一个例子:我们有一个有 600 行的表。用户正在滚动 - 发生更新。桌子有点变化。现在我有表格滚动到顶部的行为。用户现在必须再次滚动到他的最后一个位置。
我想将用户重定向到 hist last 滚动位置:ensureIndexVidisble(USERS_LAST_KNOWN_SCROLLING_POSITION, 'middle');
除了信息:用户不在表中工作。所以我无法保存他对一行的最后一次点击。
我怎样才能做到这一点?
解决方案
以典型的 AG 方式,他们将这一重要信息隐藏在他们的文档中:
方法 3 - 增量行数据 增量方法使用上面的行数据方法,但具有属性 deltaRowDataMode=true。
当 deltaRowDataMode 开启时,网格会将新行数据与当前行数据进行比较,并为您创建一个事务对象。然后网格将更改作为更新事务执行,保留所有网格选择、过滤器等。
如果您想管理网格之外的数据(例如在 Redux 存储中),请使用此选项,然后让网格计算出需要进行哪些更改才能使网格的数据版本保持最新。
https://www.ag-grid.com/javascript-grid-data-update/#bulk-updating
如果您的行具有唯一 ID,我认为这应该是您始终使用的设置(我希望他们这样做,这是一种很好的做法)。设置deltaRowDataMode
为 true 并用于getRowNodeId
指定行的唯一 ID。
之后,您的网格将更有效地更新(仅更新需要的内容)并且它不会跳到顶部,因为它不会在更新时重新创建网格中的每一行和单元格。
为了更好地衡量,您还可以添加该suppressScrollOnNewData
选项,但我不确定如果您执行上述操作是否需要它。
推荐阅读
- reactjs - 在使用创建反应应用程序制作的现有项目中创建反应应用程序
- tcl - 如何从表达式中正确返回字符串常量?
- amazon-web-services - 拒绝访问将开放数据读入 Sagemaker
- macos - 将独立 Java 应用程序中的点连接到 Mac OS 安装
- swift - 对于没有默认情况的 Double 类型,快速开关可以详尽无遗吗?
- java - 如何获取过去一周的所有日期?
- python - 获取 python 2.7 包并为 python 3.6 安装它们
- php - 递归替换字符直到在php中满足条件?
- c# - C# 在末尾写 Word,如果字符串模式包含
- react-native - 不变违规:App(…):渲染没有返回任何内容。这通常意味着缺少 return 语句。或者,不渲染任何内容,返回 null