我正在使用AG Grid显示从后端检索到的数据。当用户单击网格中的查看/编辑图标时,我会将呼叫路由到“详细信息页面”,以便用户可以编辑记录。
一旦他完成,我希望他能够回到网格中并返回到以前的位置。我想放光标或选择内容,而行用户只是单击并从中返回。
问题是实现这一目标的最佳方法是什么?我假设是使用row(node)id
我目前已经在使用网格过滤器等,因此返回时仅显示先前显示的数据。但是也可能存在项目超出当前滚动范围的问题。可以说它是125行,但我的默认设置是一次只能加载100行,因此该记录甚至不会在网格中加载。
答案 0 :(得分:0)
首先,看看possible API methods的无限行模型
您需要确保您的行尚不存在(要决定要做什么,只需滚动或预加载+滚动即可),您可以通过getInfiniteRowCount
喜欢:
if (this.gridApi.getInfiniteRowCount() < IndexOfYourRowHere)
,然后(如果尚未存在)通过setInfiniteRowCount
方法预加载数据:
this.gridApi.setInfiniteRowCount(IndexOfYourRowHere, false);
,然后通过ensureIndexVisible
进行滚动(在该行已存在的情况下,也是这种情况)
this.gridApi.ensureIndexVisible(IndexOfYourRowHere);
这就是您的逻辑:
if (this.gridApi.getInfiniteRowCount() < IndexOfYourRowHere) {
this.gridApi.setInfiniteRowCount(IndexOfYourRowHere, false);
}
this.gridApi.ensureIndexVisible(IndexOfYourRowHere);
它的官方演示来自this page
P.S。是的,这里只有Indexes
是可能的,因为这是网格理解操作的方式,因此您需要仔细地对结果进行排序(或只是准备)以实现目标。
更新
let node = this.gridApi.getDisplayedRowAtIndex(YourIndex);
node.setSelected(true)