ag-grid - 删除具有无限行模型的行

时间:2018-02-22 16:16:46

标签: ag-grid

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

我已经阅读过这个主题:https://github.com/ag-grid/ag-grid/issues/193

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

1 个答案:

答案 0 :(得分:0)

  

我应该删除服务器上的行(我已经在做了),然后调用刷新api,但这会导致" getRows"每次调用的功能和分页,另一个问题是分页没有更新。

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

  1. getRows函数中,调用服务器以获取记录数量以及数据。
  2. 使用结果更新计数。这将相应地更新滚动条大小。
  3. 检查以下代码。

    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中删除了服务器端分页。

         

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

         

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

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