ag-grid:“如何滚动到最后一个已知位置”?
Posted
技术标签:
【中文标题】ag-grid:“如何滚动到最后一个已知位置”?【英文标题】:ag-grid: "How to scroll to last known position"? 【发布时间】:2019-09-07 10:50:27 【问题描述】:Ag-Grid 提供方法ensureIndexVisible(index, 'middle');
使用该方法可以轻松滚动到选定的索引。但是如何从用户那里获取滚动位置的最后一个已知索引?
一个例子: 我们有一个有 600 行的表。 用户正在滚动 - 发生更新。桌子有点变化。 现在我有表格滚动到顶部的行为。用户现在必须再次滚动到他的最后一个位置。
我想将用户重定向到上次滚动的位置:ensureIndexVidisble(USERS_LAST_KNOWN_SCROLLING_POSITION, 'middle');
除信息外:用户不在表中工作。所以我无法保存他对一行的最后一次点击。
我怎样才能做到这一点?
【问题讨论】:
【参考方案1】:以典型的 AG 方式,他们将这一重要信息隐藏在他们的文档中:
方法 3 - Delta Row Data delta 方法是使用行数据 上面的方法,但具有属性 deltaRowDataMode=true。
当 deltaRowDataMode 开启时,网格会比较新的行数据 使用当前行数据并为您创建一个事务对象。这 然后网格将更改作为更新事务执行,保留所有 网格选择、过滤器等。
如果您想管理网格之外的数据(例如,在 Redux 存储),然后让网格计算出需要进行哪些更改 使网格的数据版本保持最新。
https://www.ag-grid.com/javascript-grid-data-update/#bulk-updating
在我看来,如果您的行具有唯一 ID,那么您应该始终使用此设置(我希望他们这样做,这样做是个好习惯)。将deltaRowDataMode
设置为 true 并使用getRowNodeId
指定行的唯一 ID。
之后,您的网格将更有效地更新(仅更新需要的内容),并且不会跳到顶部,因为它不会在更新时重新创建网格中的每一行和单元格。
您还可以添加suppressScrollOnNewData
选项,但如果您执行上述操作,我不确定是否需要它。
【讨论】:
你是男人中的神...我会以你的名字命名10个孩子 不错!这行得通。deltaRowDataMode
已弃用,immutableData
可以放入【参考方案2】:
感谢一百万,为大家腾出一些时间,这是您必须传递给属性 [gridOptions] 的内容。只要您的数据具有您设置的唯一 ID。
// gridOptions
...,
deltaRowDataMode: true,
getRowNodeId: function (data)
return data.id;
,
,
【讨论】:
以上是关于ag-grid:“如何滚动到最后一个已知位置”?的主要内容,如果未能解决你的问题,请参考以下文章
AG-GRID 无法将图标按钮添加到我的 ag-grid 中的 ag-grid 和多选复选框的每一行
ag-Grid:toolPanel 仅在 ag-Grid Enterprise 中可用
AG-GRID Excel 导出:AG-Grid 中是不是有任何方法可以为每个用户配置记录导出限制?
在两个单独的 ag-Grid 上使用 ag-Grid 的 sizeColumnsToFit() 时警告“网格零宽度”,由选项卡菜单显示