You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UI5技术问题:SimpleForm(ColumnLayout)中如何展示数组类型数据?

在UI5 SimpleForm中展示数组数据的解决方案

核心限制说明

SimpleForm + ColumnLayout的content区域仅允许放置FormElement、FormContainer,或实现了sap.ui.layout.form.FormContent接口的控件,sap.m.List/Table不在此范围内,因此直接放入会报错。无需更换整体布局,只需在FormElement内部使用合法容器控件承载数组即可。

可行实现方案

  • 方案一:用VBox绑定数组元素
    通过sap.m.VBox作为容器,将数组的每个元素绑定为独立的Text控件,自动每行显示一个元素。

    <sap.ui.layout.form.SimpleForm id="arrayForm" layout="ColumnLayout">
      <sap.ui.layout.form.FormElement label="多行数组数据">
        <sap.m.VBox items="{/yourArrayProperty}">
          <sap.m.Text text="{.}" />
        </sap.m.VBox>
      </sap.ui.layout.form.FormElement>
    </sap.ui.layout.form.SimpleForm>
    
  • 方案二:用FormattedText拼接换行符
    通过formatter将数组元素用<br>标签拼接,借助FormattedText的HTML渲染能力实现换行。

    <sap.ui.layout.form.SimpleForm id="arrayForm" layout="ColumnLayout">
      <sap.ui.layout.form.FormElement label="多行数组数据">
        <sap.m.FormattedText htmlText="{
          parts: [{path: '/yourArrayProperty'}],
          formatter: function(arr) {
            return arr ? arr.join('<br>') : '';
          }
        }" />
      </sap.ui.layout.form.FormElement>
    </sap.ui.layout.form.SimpleForm>
    
  • 方案三:复杂结构用FlexBox/Grid
    如果数组元素是包含多属性的对象,可使用sap.m.FlexBox或sap.ui.layout.Grid作为容器,绑定数组后自定义每个元素的展示结构,同样兼容FormElement的content要求。

内容的提问来源于stack exchange,提问作者Jozef

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 02:52:18