У меня ниже настраиваемый элемент управления, созданный путем расширения sap.m.Input, который позволяет пользователю вводить только числа. Однако, когда действительно возникает ошибка, состояние элемента управления изменяется на Ошибка с красными границами, но valueStateText не отображается, когда он находится в фокусе. Как я могу получить valueStateText для своего настраиваемого элемента управления? Разве он не должен наследовать от sap.m.Input?
Код настраиваемого элемента управления:
sap.ui.define([
"sap/m/Input"
], function (Control) {
"use strict";
return Control.extend("sample.control.NumericInput", {
metadata: {
properties: {},
aggregations: {},
events: {}
},
init: function () {
if (sap.ui.core.Control.prototype.onInit) {
sap.ui.core.Control.prototype.onInit.apply(this, arguments);
}
this.attachLiveChange(this.onLiveChange);
},
renderer: function (oRM, oControl) {
sap.m.InputRenderer.render(oRM, oControl);
},
onLiveChange: function (e) {
var _oInput = e.getSource();
var val = _oInput.getValue();
val = val.replace(/[^\d]/g, "");
_oInput.setValue(val);
}
});
});
XML код:
<hd:NumericInput value="{path:'payload>/MyNumber',type:'sap.ui.model.type.String',constraints:{minLength:1,maxLength:10}}" valueStateText="My Number must not be empty. Maximum 10 characters."/>