SAPUI5 和 OpenUI5 都提供了两种齐全不同的数据表控件:在 Fiori styleguide 中称为“网格表”(sap.ui.table.Table)和“响应式表”(sap.m.Table)。顾名思义,前者是响应式的,更适宜挪动应用程序,而另一种则更面向桌面。
留神
对于这两个控件的具体应用差别,请查问我的 一套适宜 SAP UI5 开发人员循序渐进的学习教程里的对应文章,近期会发表。
简而言之,对于较大的数据集(> 1000 行)倡议应用 ui 表 (sap.ui.table.Table),而在所有其余状况下应用响应式 m 表 (sap.m.Table) – 后者看起来更灵便简洁。
从技术上讲,这两个表格控件截然不同。ui 表是一个典型的有行和列的数据表,而 m 表实际上是一个列表(基于 sap.m.ListBase),每个列表项被拆分成列。
API 也齐全不同。SAP UI5 利用无奈从一张表的设计疾速切换到另一张表,因而如果我的项目施行过程中发现自己须要另一张表的性能——基本上不得不从新编写所有代码。
咱们冀望从数据表中取得的所有不便的性能,如题目排序、列过滤器、列大小调整等,仅在 ui-table 中可用。
另一方面,ui-table 没有列宽优化器,所以基本上所有的列要么太宽要么太窄。反过来,此性能仅在 m 表中可用, 这意味着后者不能手动调整列宽。
ui-table 应用虚构滚动:当数据从一行跳到另一行时,网格放弃不变。这不适用于单元格中的图像,如果多行具备类似数据,这看起来也很奇怪。另一方面,ui-table 能够主动调整它的高度以适宜容器,而 m-table 不能。
当波及到列、单元格或行分组等更高级的性能时,事件就变得复杂了。出于某种原因,行分组只在 m 表中失去正确反对,而在 ui 表中则不反对。合并单元格也是如此。另一方面,分组列仅实用于 ui 表(只管十分无限)。
列总计在任何状况下都是一个问题:尽管 m-table 基本不反对它们,但 ui-table 至多有粘底行,您能够在其中应用脚本搁置总计。些固定行会受到所有内置排序和过滤性能的影响,因而应用 for totals 的确不是一件容易的事。然而,两个表格都有页脚栏,所以如果您只须要一个总值,将它放在那里是相当容易的。
留神
对于这两个控件的具体应用差别,请查问我的 一套适宜 SAP UI5 开发人员循序渐进的学习教程里的对应文章,近期会发表。