sap.ui.comp.smarttable.SmartTable 一些属性的用法阐述

时间:2022-05-05 01:01:04

SmartTable 控件根据 OData 元数据和指定的配置创建一个表格控件。

必须指定 entitySet 属性才能使用该控件。 此属性用于从 OData 元数据中获取字段,从中生成列; 它还可以用于获取实际的表数据。

基于 tableType 属性,此控件将呈现标准表、分析表、树或响应表。

这个属性如下图所示:

sap.ui.comp.smarttable.SmartTable 一些属性的用法阐述

如果 tableType="ResponsiveTable",将应用以下更改:

  • SmartTable 的 demandPopin 属性设置为 true。
  • 内表的 fixedLayout 属性设置为 Strict。
  • 内表的 contextualWidth 属性设置为 Auto。
  • 启用列大小调整功能,并禁用所有列(包括自定义列)的列标题换行。

这个属性的值是一个枚举类型:sap.ui.comp.smarttable.TableType

sap.ui.comp.smarttable.SmartTable 一些属性的用法阐述

如果在视图中显式向 SmartTable 的内容添加表格,则此属性无效。 这不是动态属性,一旦控件初始化就无法更改。

一些属性值:

  • editable:该属性可用于指定 SmartTable 控件创建的控件是否可编辑。

设置成 true 之后的效果如下,每个 cell 可以编辑: sap.ui.comp.smarttable.SmartTable 一些属性的用法阐述

  • enableAutoColumnWidth:设置为 true 时,根据元数据信息为所有支持的表类型启用启发式列宽计算, 即 heuristic column width calculation.

列宽计算考虑了 OData 类型、列标签、文本排列、可能的单元格模板、附加字段和许多其他元数据参数。 为 Edm.String 类型提供更精确的 MaxLength 值或为数字 OData 类型提供精度值可以帮助该算法产生更好的结果。

计算出的列宽最小为 3rem,最大为 20rem。 为了避免对特定列进行启发式列宽计算,可以使用 CssDefaults 注释。

如果 tableType="ResponsiveTable",将应用以下更改:

  • SmartTable 的 demandPopin 属性设置为 true。
  • 内表的 fixedLayout 属性设置为 Strict。
  • 内表的 contextualWidth 属性设置为 Auto。
  • 启用列大小调整功能,并禁用所有列(包括自定义列)的列标题换行。

这些属性不得由应用程序管理。

默认情况下,此功能对自定义列没有影响。

要为自定义列启用启发式列宽计算,必须在 p13nData 自定义数据中指定 autoColumnWidth 属性。

  • 注意:自定义列的自动列宽计算仅在未设置自定义列的宽度属性时起作用。

  • 注意:自定义列可能具有可能会影响列宽计算结果的意外单元格模板,例如,只能包含三位数字的 Edm.Byte 字段可能会可视化为需要更多空间的 sap.m.RatingIndicator。

  • 注意:在 p13nData 自定义数据中定义 leadingProperty 和唯一的 columnKey 是所有其他 p13nData 属性(包括 autoColumnWidth 属性)的先决条件。