likes
comments
collection
share

基于 SAP UI5 JSONModel 客户端模型的列表分页显示(Table Pagination

作者站长头像
站长
· 阅读数 30

一套适合 SAP UI5 初学者循序渐进的学习教程

作者简介

Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 标准产品开发生涯里,Jerry 曾经先后参与 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等标准产品的研发工作。

Jerry 工作中使用 ABAP, Java, JavaScript 和 TypeScript 进行开发, 对包括 SAP UI5 在内的多款 SAP 自研框架有深入的研究。

教程目录

说明

Jerry 从 2014 年加入 SAP成都研究院 CRM Fiori 开发团队之后开始接触 SAP UI5,曾经在 SAP 社区和“汪子熙”微信公众号上发表过多篇关于 SAP UI5 工作原理和源码解析的文章。

在 Jerry 这篇文章 对 SAP UI5 一无所知的新手,从哪些材料开始学习比较好? 曾经提到,Jerry 也是从 SAP UI5 菜鸟一路走过来,深知只有 ABAP 开发背景的开发者,向 SAP UI5 开发领域转型的不易,因此我在业余时间设计了这份适合 SAP UI5 初学者的学习教程,把开发一个完整的 SAP UI5 应用的流程,拆分成若干个步骤,力求每个步骤里,把涉及到的知识点都涵盖到。这些知识点可能不像我的 UI5 源码分析系列文章那么深入,但力求浅显易懂,便于 SAP UI5 初学者理解。

本教程每一个步骤的源代码,都存放在我的 Github 上,分别用文件夹 01,02,03 等等来标识,例如步骤 1 的源代码在这里

基于 SAP UI5 JSONModel 客户端模型的列表分页显示(Table Pagination

每一个步骤均是前一步骤的基础上,添加了若干新特性。建议零基础或者对 SAP UI5 知之甚少的初学者,按照顺序从第一个步骤开始循序渐进地学习,把这些代码下载到本地,配合教程的文字讲解,自己动手,以加深理解。

大家如果对教程的每个步骤有任何疑问,欢迎在教程对应的步骤文章里给我评论,进行留言。

之前 Jerry 收到不少朋友的私信,询问 SAP UI5 表格控件(Table Control),如何实现分页显示效果。本教程就来介绍这个很多朋友都问过的常见需求。

SAP UI5 表格控件并不支持开销即用的分页显示效果。如果 SAP UI5 列表控件基于 OData 这种服务器端模型来实现,列表默认显示 20 条数据。更多的数据,通过点击列表底部的 More 按钮动态加载,这就是所谓的 Growing 即动态增长特性。

基于 SAP UI5 JSONModel 客户端模型的列表分页显示(Table Pagination

每次点击 More 按钮,SAP UI5 列表控件都会向 OData 服务器发起新的数据请求,前提是服务器端的 OData 服务,实现了分页功能(Pagination),即通过 OData 协议的参数 $skip$top, 来返回客户端(即 SAP UI5 列表控件)请求的某一页内容。

假设每页显示 10 条数据,则 SAP UI5 列表控件通过下列的 OData 请求,分别读取每一页的数据:

  • $skip=0&$top=10: 请求第一页的数据,即服务器上第 1 条到第 10 条数据
  • $skip=10&$top=20: 请求第二页的数据,即服务器上第 11 条到第 20 条数据
  • 依次类推

本教程后续会介绍使用 OData 服务器端模型的 SAP UI5 列表分页显示的步骤。

如果使用 JSONModel 这种客户端模型,即列表待显示的数据,全部位于本地(比如某个 JSON 文件中),则分页显示又该如何实现呢?

具体步骤如下