Ag-Grid提供了方法ensureIndexVisible(index, 'middle');
,该方法很容易滚动到选定的索引。但是,如何从用户那里获得滚动位置的最新已知索引?
一个例子: 我们有一个600行的表。 用户正在滚动-更新发生。桌子变了一点。 现在,我的行为是表格滚动到顶部。用户现在必须再次滚动到他的最后位置。
我想将用户重定向到历史上一个滚动位置:ensureIndexVidisble(USERS_LAST_KNOWN_SCROLLING_POSITION, 'middle');
除信息外:用户不在表中工作。因此,我无法保存他最后一次单击的行。
我该如何实现?
答案 0 :(得分:2)
他们以典型的AG方式将这些重要信息隐藏在文档中:
方法3-增量行数据增量方法正在使用行数据 上面的方法,但具有deltaRowDataMode = true属性。
打开deltaRowDataMode时,网格将比较新的行数据 使用当前行数据并为您创建一个事务对象。的 然后网格将更改作为更新事务执行,保留所有 网格选择,过滤器等。
如果要管理网格外部的数据(例如,在网格中 Redux存储),然后让网格确定需要进行哪些更改 保持网格数据的最新状态。
https://www.ag-grid.com/javascript-grid-data-update/#bulk-updating
我认为,如果您的行具有唯一的ID,则应该始终使用此设置(我希望它们会这样做,这是一种很好的做法)。将deltaRowDataMode
设置为true,然后使用getRowNodeId
为该行指定唯一的ID。
此后,您的网格将更高效地进行更新(仅更新所需的内容),并且在更新时不会跳到顶部,因为它不会在更新时重新创建网格中的每一行和单元格。>
出于很好的考虑,您也可以添加suppressScrollOnNewData
选项,尽管我不确定如果执行上述操作是否需要它。
答案 1 :(得分:1)
感谢一百万,给大家留出一些时间,这是您必须传递给属性[gridOptions]的条件。只要您的数据具有唯一的ID,便已设置。
// gridOptions
{
...,
deltaRowDataMode: true,
getRowNodeId: function (data) {
return data.id;
},
},