Validation 如何根据动态最小日期验证sap.m.DatePicker选择?
验证sap.m.DatePicker输入的正常方法如下所示:Validation 如何根据动态最小日期验证sap.m.DatePicker选择?,validation,sapui5,Validation,Sapui5,验证sap.m.DatePicker输入的正常方法如下所示: new sap.m.DatePicker({ value : { path : "someModel>/SomeDate", type : new sap.ui.model.type.Date({}, { minimum : new Date() }) } }) new sap.m.DatePicker({ value : {
new sap.m.DatePicker({
value : {
path : "someModel>/SomeDate",
type : new sap.ui.model.type.Date({}, {
minimum : new Date()
})
}
})
new sap.m.DatePicker({
value : {
path : "someModel>/SomeDate",
type : new sap.ui.model.type.Date({}, {
minimum : "{someModel>/MinimumDate}"
})
}
})
new sap.m.DatePicker({
value : {
path : "model>/Date",
type : new my.CallbackDateType({}, {
minimum : new Date(),
callback : [oController.getMinimumDate, oController]
})
}
})
我有一个问题,“最短”日期将取决于不同的其他参数。
类型中的绑定似乎不起作用(或者我做错了什么?)
我很高兴有这样一个功能:
new sap.m.DatePicker({
value : {
path : "someModel>/SomeDate",
type : new sap.ui.model.type.Date({}, {
minimum : new Date()
})
}
})
new sap.m.DatePicker({
value : {
path : "someModel>/SomeDate",
type : new sap.ui.model.type.Date({}, {
minimum : "{someModel>/MinimumDate}"
})
}
})
new sap.m.DatePicker({
value : {
path : "model>/Date",
type : new my.CallbackDateType({}, {
minimum : new Date(),
callback : [oController.getMinimumDate, oController]
})
}
})
有人知道如何解决这个问题吗?
我宁愿避免使用id来获取控制器中的控件。我构建了以下解决方案。也许有更好的办法 数据类型的定义:
jQuery.sap.declare("my.CallbackDateType");
sap.ui.model.type.Date.extend("my.CallbackDateType", {
constructor : function () {
sap.ui.model.type.Date.apply(this, arguments);
this.sName = "CallbackDateType";
},
validateValue : function(oValue) {
var that = this;
if (that.oConstraints.callback!==undefined) {
that.oConstraints.callback[0].call(that.oConstraints.callback[1], that);
}
return sap.ui.model.type.Date.prototype.validateValue.call(this, oValue);
}
});
这样使用:
new sap.m.DatePicker({
value : {
path : "someModel>/SomeDate",
type : new sap.ui.model.type.Date({}, {
minimum : new Date()
})
}
})
new sap.m.DatePicker({
value : {
path : "someModel>/SomeDate",
type : new sap.ui.model.type.Date({}, {
minimum : "{someModel>/MinimumDate}"
})
}
})
new sap.m.DatePicker({
value : {
path : "model>/Date",
type : new my.CallbackDateType({}, {
minimum : new Date(),
callback : [oController.getMinimumDate, oController]
})
}
})