问题描述
你如何处理 ng2-smart-table 中 angular 7 的分页? 我有太多的记录,加载所有这些记录需要太多时间。如何将表设置为一次请求 10 条记录? 例如:当表第一次加载时是请求前 10 条记录。当我按下其中一个分页按钮时,它会请求“第 n 个”记录? 我已经阅读了之前的文章,但我仍然不清楚如何处理这个问题。
解决方法
希望请求被传递到服务器以获取数据。如果是这样,在使用实体框架或 sql 处理时添加两个参数页面索引(指页码)和页面大小(指每页的行数),我们可以使用跳过并采取逻辑来处理分页。 例如:如果我的请求有 page_index=1 和 page_size=20 那么我需要返回 1st 20 recs 所以代码将是 basequery.skip(page_size*(page_index-1)).take(page_size); 同样明智的是,如果 page_index=2 那么它将跳过第 1 个 20,然后进行接下来的 20 个记录。
为了在 UI 中处理,我们可以添加 ng2-smart-table 的 pagersettings 对象,参考文档 https://akveo.github.io/ng2-smart-table/#/documentation 或者如果我们需要自定义分页,我们可以使用 source.setPaging() 方法,它需要 3 个参数 pagenumber,每页行数和一个布尔值是否重新加载表