首页 > 解决方案 > SAPUI5 没有为智能表中的自定义列使用正确的类型

问题描述

我有一个 SAPUI5 智能表,我使用以下方式定义类型的自定义列date

在我的 oData 我有两列是这样的:

<Property Name="Datum" Type="Edm.DateTime" sap:creatable="true" sap:updatable="true" sap:deletable="true" sap:display-format="Date" sap:label="Datum"/>
<Property Name="AngebotAngefragt" Type="Edm.DateTime" sap:creatable="true" sap:updatable="true" sap:deletable="true" sap:display-format="Date" sap:label="AngebotAngefragt"/>

我将其中一个定义为自定义列,如下所示:

<Column visible="true">
        <customData>
            <core:CustomData key="p13nData" value='{"columnKey": "Datum", "leadingProperty": "Datum", "sortProperty": "Datum", "filterProperty": "Datum", "columnIndex":"3", "type": "date"}'/>
        </customData>
        <Text text="{/#Meldungen/Datum/@sap:label}"/>
</Column>

在旧版本的 UI5 中,使用相同的代码片段,p13n当我们将类型设置为时,它会在对话框中显示自定义项目的日历date,但现在我使用版本1.80,它会显示一个输入框。

以下是该Datum列显示的内容:

在此处输入图像描述

这是它为AngebotAngefragt我未定义为自定义列的列显示的内容:

在此处输入图像描述

标签: sapui5

解决方案


这可以通过以下语法解决:

<Column visible="true">
        <customData>
            <core:CustomData key="p13nData" value='\{"columnKey": "Datum", "leadingProperty": "Datum", "sortProperty": "Datum", "filterProperty": "Datum", "columnIndex":"3", "type": "date"}'/>
        </customData>
        <Text text="{/#Meldungen/Datum/@sap:label}"/>
</Column>

这里真正的诀窍是属性值的前导反斜杠。

如果在 Columns customData 定义(在 js 级别)的开头没有给出反斜杠,将会添加一个属性类型,但值未定义。应该与 SAPUI5 的内部处理有关(并且字符串没有被转义),但是这没有明确记录。

代码示例: https ://sapui5.netweaver.ondemand.com/#/topic/bed8274140d04fc0b9bcb2db42d8bac2 (FAQ -> 1. 示例片段)


推荐阅读