【问题标题】:ag-grid - Remove row with infinite row modelag-grid - 删除具有无限行模型的行
【发布时间】:2018-08-02 14:07:42
【问题描述】:

我正在尝试使用具有无限行模型和分页功能的网格删除一行。我不确定如何删除特定行并更新内部模型而无需刷新网格(从而发出新的 ajax 请求)。

我已经阅读了这个帖子:https://github.com/ag-grid/ag-grid/issues/193

显然我应该删除服务器上的行(我已经在做),然后调用刷新 api,但这会导致每次调用“getRows”函数和分页,另一个问题是分页不更新。如果我在 10 个页面中有 100 个项目,我删除一个项目并调用刷新缓存 api,内部分页不会更新,保持 100 个项目和 10 个页面作为参考。

【问题讨论】:

  • 最新ag-grid recommandationsIf you were doing server side pagination, we recommend moving to pagination with infinite scrolling as a way of migration to the new mechanism.

标签: ag-grid


【解决方案1】:

我应该删除服务器上的行(我已经在做),然后调用刷新 api,但这会导致每次都调用“getRows”函数和分页,另一个问题是分页不更新。

根据无限滚动,我们只需要注意计数而不是分页。可以通过以下步骤实现。

  1. 在您的 getRows 函数中,调用服务器以获取记录数以及数据。
  2. 使用结果更新计数。这将相应地更新滚动条的大小。

检查下面的代码。

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 给出的。

在 v9.0 中,ag-Grid 分页从服务器端分页更改为客户端分页。然后在 v10.1 中删除了服务器端分页。

如果您正在执行服务器端分页,我们建议您使用无限滚动的分页作为迁移到新机制的一种方式。

如果您手动切片数据源中的数据以模拟仅在浏览器中完成的分页,我们建议您使用默认的内存行模型并将行数据设置为正常,然后设置网格属性 pagination=true。

如果您要使用建议的最后一点,那么我想getRows 问题根本不会发生。

【讨论】:

    猜你喜欢
    • 2021-04-15
    • 1970-01-01
    • 2021-09-13
    • 2017-05-20
    • 2017-03-14
    • 2020-09-23
    • 2016-11-25
    • 2019-01-16
    • 2019-03-17
    相关资源
    最近更新 更多