我尝试使用具有无限行模型和分页功能的网格删除行。我不确定如何删除特定行并更新内部模型而不必刷新网格(从而产生新的ajax请求)。
我已经阅读过这个主题:https://github.com/ag-grid/ag-grid/issues/193
并且显然我应该删除服务器上的行(我已经在做了),然后调用刷新api,但这会导致" getRows"每次调用的功能和分页,另一个问题是分页没有更新。如果我在10页中有100个项目,我删除一个项目并调用刷新缓存api,内部分页不会更新,保留100个项目和10个页面作为参考。
答案 0 :(得分:0)
我应该删除服务器上的行(我已经在做了),然后调用刷新api,但这会导致" getRows"每次调用的功能和分页,另一个问题是分页没有更新。
根据无限滚动,我们只需要关注计数而不是分页。这可以通过以下步骤实现。
getRows
函数中,调用服务器以获取记录数量以及数据。检查以下代码。
private getRows(params: IGetRowsParams, data: any) {
Observable.forkJoin(
[
this.dataSvc.getResult(serverParams, params.startRow),
this.dataSvc.getCount(serverParams)
])
.subscribe((result: any[]) => {
params.successCallback(result[0], <number>result[1]);
})
}
警告:此答案基于infinite scrolling recommendation小组提供的ag-grid。
在v9.0中,ag-Grid分页从服务器端分页更改为客户端分页。然后在v10.1中删除了服务器端分页。
如果您正在进行服务器端分页,我们建议使用无限滚动作为迁移到新机制的方式进行分页。
如果您手动切割数据源中的数据以模仿仅在浏览器中完成的分页,我们建议您使用默认的内存行模型并将行数据设置为正常,然后设置grid属性pagination = true。 / p>
如果您要使用建议的最后一点,那么我想getRows
问题根本不会发生。