Javascript sap.m.input sap ui5中的自定义输入类型
我有一个输入字段(sap.m.input),我需要它的类型为Float。 我尝试使用sap.ui.model.type.Float(),但没有成功 如何为输入字段使用自定义类型。我没有任何绑定,只需要将输入字段的类型设置为float。 举个例子会很有帮助 提前感谢,,Javascript sap.m.input sap ui5中的自定义输入类型,javascript,sapui5,Javascript,Sapui5,我有一个输入字段(sap.m.input),我需要它的类型为Float。 我尝试使用sap.ui.model.type.Float(),但没有成功 如何为输入字段使用自定义类型。我没有任何绑定,只需要将输入字段的类型设置为float。 举个例子会很有帮助 提前感谢,, Deepak您可以这样创建自定义类型: <script type="text/javascript"> (function(){ "use strict"; jQuery.sap
Deepak您可以这样创建自定义类型:
<script type="text/javascript">
(function(){
"use strict";
jQuery.sap.declare('Float');
jQuery.sap.require('sap.ui.base.DataType');
Float = sap.ui.base.DataType.createType( "Float",
{ isValid :
function(sValue) {
return ((sValue % 1) != 0);
}
}, sap.ui.base.DataType.getType('number')
);
})();
</script>
(功能(){
“严格使用”;
jQuery.sap.declare('Float');
jQuery.sap.require('sap.ui.base.DataType');
Float=sap.ui.base.DataType.createType(“Float”,
{isValid:
函数(S值){
返回((值%1)!=0);
}
},sap.ui.base.DataType.getType('number'))
);
})();
现在您可以将类型用作Float您可以这样创建自定义类型:
<script type="text/javascript">
(function(){
"use strict";
jQuery.sap.declare('Float');
jQuery.sap.require('sap.ui.base.DataType');
Float = sap.ui.base.DataType.createType( "Float",
{ isValid :
function(sValue) {
return ((sValue % 1) != 0);
}
}, sap.ui.base.DataType.getType('number')
);
})();
</script>
(功能(){
“严格使用”;
jQuery.sap.declare('Float');
jQuery.sap.require('sap.ui.base.DataType');
Float=sap.ui.base.DataType.createType(“Float”,
{isValid:
函数(S值){
返回((值%1)!=0);
}
},sap.ui.base.DataType.getType('number'))
);
})();
现在您可以使用type作为Float我也有同样的问题,使用new
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示例:
在文件中搜索PLZ
目前,我正在寻找一种方法,在构建MyFloat
的过程中添加一些参数
您可以通过以下方式使用此类型:
new sap.m.Input({
value: {
path : "BindingPathToAttribute",
type : new my.package.MyFloat({})
}
}),
我也有同样的问题,使用new
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示例:
在文件中搜索PLZ
目前,我正在寻找一种方法,在构建MyFloat
的过程中添加一些参数
您可以通过以下方式使用此类型:
new sap.m.Input({
value: {
path : "BindingPathToAttribute",
type : new my.package.MyFloat({})
}
}),
嗨,奎师那,谢谢你的片段。这是否也确保键盘仅显示数字和“.”/“,”呢?谢谢你的片段。这是否也确保键盘仅显示数字和“.”/“,”呢?干杯