【问题标题】:How to implement server side pagination in Ng2-smart-table?如何在 Ng2-smart-table 中实现服务器端分页?
【发布时间】:2019-08-10 12:50:02
【问题描述】:

我创建了一个新的自定义数据源,它扩展了本地数据源。这样我就可以获取数据库中的所有记录。但事实并非如此,因为我的数据库中有一千条记录。所以上面的实现效率不高。

现在我尝试对其实现服务器端分页。我已经浏览了 GitHub ng2-smart-table 问题(https://github.com/akveo/ng2-smart-table/issues/30)。但我找不到正确的解决方案。所以请你帮忙。

提前致谢。

【问题讨论】:

标签: angular angular7 ng2-smart-table


【解决方案1】:

这是我的服务器端分页解决方案

ng2-smart-table with paging from back-end (Spring)

我有一个包含 startIndex 和 recordCount 信息的过滤器。 您应该确保只从您的 API/DB/等返回请求的数据量。

【讨论】:

    【解决方案2】:

    您的数据库可能会支持诸如跳过/限制功能之类的功能。基于此,客户端代码可以向数据库发出请求以返回部分结果。

    【讨论】:

    • 我正在使用 mysql 数据库。所以我可以跳过/限制功能。但我的问题是在 ng2-smart-table 中实现相同的功能。因为我已经编写了自己的 DataSource,它为它扩展了 LocalDataSource,正如我上面提到的 github 链接。但我想不通,他是如​​何完成分页的。
    【解决方案3】:

    这是我的解决方案..

    1. 像这样从 DB 或 API 返回数据。
    data: [{,…}, {,…}, {,…}, {,…}, {,…}, {,…}, {,…}, {,…}, {,…}, {,…}] total: 10
    
    1. 像这样获取数据,同时指定 datakey 和 totalkey 名称,准确说明它们在第一步中返回的方式。
    return new ServerDataSource(this.http, {
      endPoint: endpointUrl,
      dataKey: 'data',
      totalKey: 'total',
    });
    
    1. 在您的表格设置中,显示分页器并设置 perPage
    settings = {
      pager: {
        display: true,
        perPage: 5,
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-23
      • 2017-08-15
      • 2021-03-21
      • 1970-01-01
      • 2021-08-18
      • 2020-07-08
      相关资源
      最近更新 更多