SmartTable 控件根据 OData 元数据和指定的配置创建一个表格控件。
必须指定 entitySet 属性才能使用该控件。 此属性用于从 OData 元数据中获取字段,从中生成列; 它还可以用于获取实际的表数据。
基于 tableType
属性,此控件将呈现标准表、分析表、树或响应表。
这个属性如下图所示:
如果 tableType="ResponsiveTable",将应用以下更改:
- SmartTable 的 demandPopin 属性设置为 true。
- 内表的 fixedLayout 属性设置为 Strict。
- 内表的 contextualWidth 属性设置为 Auto。
- 启用列大小调整功能,并禁用所有列(包括自定义列)的列标题换行。
这个属性的值是一个枚举类型:sap.ui.comp.smarttable.TableType
如果在视图中显式
向 SmartTable 的内容添加表格,则此属性无效。
这不是动态属性,一旦控件初始化就无法更改。
一些属性值:
- editable:该属性可用于指定 SmartTable 控件创建的控件是否可编辑。
设置成 true 之后的效果如下,每个 cell 可以编辑:
- 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 属性)的先决条件。