我有一个使用以下代码段创建的日期选择器:
return new sap.m.DatePicker(sId, {
dateValue: `{${sPath}}`,
valueFormat: "dd-MM-yyyy",
displayFormat: "dd-MM-yyyy"
});
但是当我尝试用this example书写时,它确实可以识别。
我在做什么错了?
答案 0 :(得分:1)
const oDatePicker = new DatePicker(sId).bindValue({
path: sPath,
type: new DateType({ // "sap/ui/model/type/Date"
pattern: "dd-MM-yyyy",
})
});
const messageManager = sap.ui.getCore().getMessageManager();
messageManager.registerObject(oDatePicker, true);
return oDataPicker;
如果使用数据绑定,则需要绑定value
属性而不是dateValue
。
API reference:
sap.m.DatePicker
- 如果要使用
value
将DatePicker绑定到模型,请使用sap.ui.model.type.Date
属性。- 如果日期已作为JavaScript Date对象提供,或者您要使用JavaScript Date对象,请使用
dateValue
属性。 (...)尽管可以绑定它,但建议不这样做。 需要绑定时,请改用value
属性。
最后,将控件注册到MessageManager或enable handleValidation
。如果无法解析输入或违反给定的约束,UI5将负责显示错误消息。
答案 1 :(得分:0)
https://sapui5.hana.ondemand.com/#/sample/sap.m.sample.DatePicker/code/Group.controller.js
handleChange: function (oEvent) {
var oText = this.byId("T1");
var oDP = oEvent.oSource;
var sValue = oEvent.getParameter("value");
var bValid = oEvent.getParameter("valid");
this._iEvent++;
oText.setText("Change - Event " + this._iEvent + ": DatePicker " + oDP.getId() + ":" + sValue);
if (bValid) {
oDP.setValueState(sap.ui.core.ValueState.None);
} else {
oDP.setValueState(sap.ui.core.ValueState.Error);
}
}
这是示例中使用的更改处理程序,您必须自己执行错误处理