【问题标题】:Last page number (Server side pagination, Ng2-Smart-Table)最后页码(服务器端分页,Ng2-Smart-Table)
【发布时间】:2018-01-10 14:08:51
【问题描述】:

我正在使用带有服务器端分页的 Ng2-Smart-Table 组件。 我测试了这个例子(https://github.com/akveo/ng2-smart-table/blob/master/src/app/pages/examples/server/advanced-example-server.component.ts)

分析上述示例中的请求,我注意到除了 JSON 记录/对象之外没有任何响应: IMAGE - Response Example.

疑问:组件如何知道哪个是最后一页? (在示例 500 中): IMAGE - Example last page pagination

我试图理解在我的 API 中实现,因为我将实现与示例有点不同,仅在服务中请求。所以想知道组件是如何获取最后一页的值的。

【问题讨论】:

    标签: angular typescript ng2-smart-table


    【解决方案1】:

    分页的概念基于数据的获取和跳过。假设您的网格显示 10 条记录,那么 take 的值为 10,如果您在第一页,则 skip 的值将为零。这是用于此概念的以下公式:

    skip = (pageNo. - 1 ) * take
    

    希望对你有帮助

    【讨论】:

    • 分页我得到了。不清楚组件如何知道有 500 个页面(当我单击最后一页箭头时),如果响应中只有 10 个项目(因为需要 10 个)?
    • 他们使用索引来呈现分页。他们还使用总记录数和页面大小来呈现寻呼机。当您使用服务器端分页时,您需要提供记录总数以显示实际分页,因为您只获取有限数量的记录而不是从数据库中获取全部记录。
    • 好的,伙计。我明白你的意思。但我的问题与理论或如何计算无关。但是关于组件如何获得页面的总值。我知道 API 将总数传递给它,但我想了解这是如何完成的,因为在文档中它没有出现,在我测试的示例中,它没有任何带有此参数的请求,也没有任何答案返回该总数。
    【解决方案2】:

    我找到了我自己问题的答案 XD 在调试 server.data-source.js 文件中的组件代码后,我发现了组件的工作原理,它进行了两次验证,并且可以通过两种方式提取总行数。 首先,它验证响应标头是否有一个 Key 等于放置在您的应用程序角度中的 ServerDataSource 对象实例的 Key totalKey 中的值。

    如果它不存在,它会在响应的 JSON 对象列表中查找,也使用相同的键。

    【讨论】:

      猜你喜欢
      • 2017-11-23
      • 2019-08-10
      • 1970-01-01
      • 2017-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-02
      • 2020-07-08
      相关资源
      最近更新 更多