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 与 Redux

AG-GRID Excel 导出:AG-Grid 中是不是有任何方法可以为每个用户配置记录导出限制?

在两个单独的 ag-Grid 上使用 ag-Grid 的 sizeColumnsToFit() 时警告“网格零宽度”,由选项卡菜单显示

在 ag-grid 中显示图像