是否可以强制要求SAPUI5智能表中的属性,以便用户在编辑时不能将字段留空?
我发现this document说应该可以在metadata.xml文件中的Property上设置必需的字段控件,注释如下:
<Property Name="NameLast" Type="Edm.String" Nullable="false" MaxLength="40" sap:label="Last name" sap:field-control="7" />
但是使用此设置我在控制台中收到以下错误:
2017-04-14 11:37:36.691429 MockServer: Resource not found for the segment '7'
2017-04-14 11:37:36.707985 The following problem occurred: HTTP request failed404,Not Found,{"error":{"code":404,"message":{"lang":"en","value":"Resource not found for the segment '7'"}}} -
编辑:
后来我发现sap:field-control不应该包含数字,而是包含该数字的另一个属性的路径表达式 . 但是这也行不通:
<Property Name="NameLast" Type="Edm.String" Nullable="false" MaxLength="40" sap:label="Last name" sap:field-control="Name_fc" />
<Property Name="Name_fc" Type="Edm.Byte" />
Name_fc属性的值为'7' . 我现在没有看到任何控制台错误,但是我仍然可以将输入(NameLast)字段留空而不进行任何验证并将其发送到OData服务,这不是我所期望的 .
以下是sap中使用必填字段的示例的链接 . 我不知道他们是如何做到的 . https://sapui5.netweaver.ondemand.com/sdk/explored.html#/sample/sap.ui.comp.sample.smartfield/code/SmartField.view.xml
3 回答
https://sapui5.hana.ondemand.com/#docs/api/symbols/sap.ui.comp.smartfield.SmartField.html
该实体的强制性 property 必须为
nullable="false"
. 而已 .查看链接中的智能字段示例:
顺便说一句 . 感谢分享您的智能表示例!
根据我的理解,有两种选择:
1)将特定属性定义为强制 - > Nullable="false"
2)将房产链接到实体中的另一个房产,即“现场控制” . 该字段控件可以包含数字,“7”表示必须包含数字 .
选项2的链接可以在MPC_EXT类中完成(重新定义define方法) . “field-control”属性中的实际值在get_entity / get_en中设置
但是我也遇到了smarttable的问题 . 空白时,必填字段不会亮起红色 .