У меня такая же проблема, использование нового sap.ui.model.type.Float
, похоже, преобразует строку из службы OData (Edm.Decimal) в реальное число с плавающей точкой. Это будет работать для отображения правильного числа, но не если вы попытаетесь записать измененное значение обратно (OData двусторонняя привязка).
Поэтому я реализовал собственный тип, как это:
jQuery.sap.declare("my.package.MyFloat");
sap.ui.model.SimpleType.extend("my.package.MyFloat", {
formatValue : function(oValue) {
return oValue;
},
parseValue : function(oValue) {
return oValue;
},
validateValue : function(oValue) {
if (oValue != null && oValue != "" && oValue != undefined) {
if (isNaN(Number(oValue))) {
var messageString = sap.ui.getCore().getModel("i18n").getResourceBundle().getText("KEY_TO_ERROR_MESSAGE");
throw new sap.ui.model.ValidateException(messageString);
}
}
}
})
я обнаружил один пример SAP здесь: http://help.sap.com/saphelp_nw74/helpdata/de/91/f0652b6f4d1014b6dd926db0e91070/content.htm поиск PLZ в файле.
В настоящее время я ищу способ добавить некоторые параметры во время строительства MyFloat
.
Вы можете использовать такой тип таким образом:
new sap.m.Input({
value: {
path : "BindingPathToAttribute",
type : new my.package.MyFloat({})
}
}),
Привет Кришна, спасибо за сниппета. Это также гарантирует, что клавиатура отображает номера и «.»/«,» Только? Cheers – AntonSack