sap.m中的自定义输入类型.输入sap-ui5
custom input type in sap.m.Input sap ui5
我有一个输入字段(sap.m.input),我需要它的类型为Float。我试着使用sap.ui.model.type.Float(),但没有成功。
如何为输入字段使用自定义类型。我没有任何绑定,只需要将输入字段的类型设置为float。举个例子会很有帮助。
提前感谢,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>
现在您可以使用类型作为Float
我也有同样的问题,使用新的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({})
}
}),
var oInp = new sap.m.Input({
liveChange : function(oEvent){
debugger;
var value = parseFloat(oEvent.getSource().getProperty('value'));
if(value % 1 === 0 || isNaN(value))
valueState = "Error";
else
valueState = "Success";
oEvent.getSource().setValueState(valueState);
}
});
oInp.setType(sap.m.InputType.Number);
相关文章:
- 在<输入类型=“;文件“/>
- 如何将输入类型值或id从一个jsp传递到另一个jsp页面
- 可以't将几个数字设置为<输入类型=“;数字“>
- 在输入类型日期中设置日期
- 如何将键入的文本从一个输入类型的文本复制到另一个
- 输入类型按钮返回历史记录并返回顶部
- 从HTML表单发布blob的表单输入类型是什么
- 输入类型文件的未捕获类型错误
- 如何在jQuery Mobile中设置100%宽度的输入类型日期
- 输入类型=文件验证停止其他输入类型验证
- 如何显示在输入类型文件中选择的文件
- jQuery Modal Popup-回发后输入类型设置为null
- 在控制器中将输入类型时间更改为秒
- 更改具有相同id的输入类型的所有值
- 对于每个输入类型,使用javascript获取值
- 输入类型范围在angularjs重复内不起作用
- 我如何使HTML5<输入类型=月份>以在所有浏览器上工作
- 如何调用两个函数是一种html输入类型
- 如何使按钮作为输入类型文件
- 可以设置输入类型=文件的文本框的高度