对于每个版本的SAPUI5,我对sap.ui.model.type.Float
数据类型和ODataModel都有奇怪的问题。
查看我的旧帖子:How to handle number format of OData Edm.Decimal in sapui5 correct?
后来我构建了一个解决问题的黑客(SAPUI5 1.26.x),它看起来像这里提到的那样: https://stackoverflow.com/a/27147305/3783327
这很好用。现在我尝试升级到1.28.12和sap.ui.model.odata.v2.ODataModel
模型。
我有以下情况:
我使用以下类型绑定控件:
return new sap.ui.model.type.Float({
maxFractionDigits : 2,
minFractionDigits: 2,
source : {
maxFractionDigits : 2,
minFractionDigits: 2
}
});
根据文档,source
用于定义模型格式。
如果我在发布时使用它,则帖子将使用逗号作为分隔符而不是点。
如果我不使用它,模型将收到一个浮点而不是一个字符串(与1.26.x相同的问题)。
将Edm.Decimal
与Float
数据类型绑定的正确解决方案是什么,以便我可以在浏览器的用户区域设置中输入数字,并始终将其发送到服务器?< / p>
答案 0 :(得分:1)
我已经为你所遇到的同样问题而挣扎,并且无法通过研究找到合适的解决方案。到目前为止,我使用以下方法从输入字段解析所需的字符串,其值为sap.ui.model.type.Float:
new sap.ui.model.odata.type.Decimal().parseValue(input.value, "float");
之后,您可以将此字符串分配给您要创建/更新的OData条目。
不确定这是否是一个很好的解决方案,因为我对sapui5很新...只是想分享我对这个主题的想法。
答案 1 :(得分:0)
同时我检测到以下文件: https://openui5beta.hana.ondemand.com/#docs/guide/91f30dbf6f4d1014b6dd926db0e91070.html
如果链接不起作用,请在sap.ui.model.type.Float
https://openui5beta.hana.ondemand.com
我现在使用以下代码:
return new sap.ui.model.type.Float({
maxFractionDigits : 2,
minFractionDigits: 2,
source : {
groupingSeparator: ",",
decimalSeparator: ".",
groupingEnabled: false,
maxFractionDigits : 2,
minFractionDigits: 2
}
});
看起来非常复杂,只显示Edm.Decimal,不确定是否有更简单的解决方案?我希望客户sap.ui.model.odata.v2.ODataModel
更聪明,但也许不是?