Sapui5 从和到的日期选择器
在表单中,我有两个Sapui5 从和到的日期选择器,sapui5,Sapui5,在表单中,我有两个DatePicker字段,分别是From和To。在这种情况下,用户不能选择小于他/她为From字段选择的to值 我只是想知道是否有任何SAPUI5本机方法可以进行此比较并验证DatePicker字段?在图像中,您可以看到From的值大于To,这是错误的!在本例中,我需要在字段周围显示验证错误 有没有任何SAPUI5本地方法可以做到这一点 是的,看一看 sap.ui.getCore().attachInit(()=>sap.ui.require([ “sap/ui/core/
DatePicker
字段,分别是From
和To
。在这种情况下,用户不能选择小于他/她为From
字段选择的to
值
我只是想知道是否有任何SAPUI5本机方法可以进行此比较并验证DatePicker
字段?在图像中,您可以看到From的值大于To
,这是错误的!在本例中,我需要在字段周围显示验证错误
有没有任何SAPUI5本地方法可以做到这一点
是的,看一看
sap.ui.getCore().attachInit(()=>sap.ui.require([
“sap/ui/core/core”,
“sap/ui/model/odata/v2/ODataModel”,
“sap/ui/core/Fragment”,
],异步(核心、ODataModel、片段)=>{
“严格使用”;
setModel(createNorthwindModel());//首先加载$metadata
等待承诺。所有([//然后控制libs
Core.loadLibrary(“sap.m”,true),
loadLibrary(“sap.ui.unified”,true),
]);
const control=await Fragment.load({//XML sample
定义:``,
});
函数createNorthwindModel(){
返回新ODataModel({
服务URL:[
"https://cors-anywhere.herokuapp.com/“,//代理
"https://services.odata.org/V2/Northwind/Northwind.svc/"
].加入(“”),
标记处理:false,
初步内容:对,
defaultBindingMode:“双向”,
useBatch:false,
});
}
Core.getMessageManager().registerObject(control.placeAt(“内容”),true);
}));代码>
通过使用“发件人”选择器上的事件,我们可以根据拾取的日期使用“收件人”选择器的方法,这样用户只能选择选定日期之后的日期
在我们的XML视图中,我们可以同时拥有:
通过应用此方法,我们现在可以从第一个日期获取新值,并使用此方法将其应用于“to”日期选择器,并重置其值,以便用户必须选择新日期。假设xml视图文件中有以下2个日期选择器对象:
<m:DatePicker id="__input_validFrom"
value="{path: 'ZValidFrom', type : 'sap.ui.model.type.Date'}"
fieldGroupIds="fieldGroup1"
change="handleValidFromChange"/>
<m:DatePicker id="__input_validTo"
value="{path: 'ZValidTo', type : 'sap.ui.model.type.Date'}"
fieldGroupIds="fieldGroup1"
change="handleValidToChange" />
一旦用户更改其中一个字段中的值,我们就会更改另一个字段中的约束
注:
请注意,我们不能直接将约束绑定到模型李>
通过应用此解决方案,您需要使用日期选择器上的验证来查看一些验证状态文本李>
对于选择日期范围的典型用例,UI5提供了DateRangeSelection
。看见
handleChange: function(oControlEvent) {
//get date picked from first picker
var sDatePicked = oControlEvent.getSource().getDateValue();
//set minimum date on second picker
this.getView().byId("DP2").setMinDate(sDatePicked).setValue();
}
<m:DatePicker id="__input_validFrom"
value="{path: 'ZValidFrom', type : 'sap.ui.model.type.Date'}"
fieldGroupIds="fieldGroup1"
change="handleValidFromChange"/>
<m:DatePicker id="__input_validTo"
value="{path: 'ZValidTo', type : 'sap.ui.model.type.Date'}"
fieldGroupIds="fieldGroup1"
change="handleValidToChange" />
handleValidFromChange: function (oEvent) {
var oDatePicker = oEvent.getSource(),
sValue = oDatePicker.getValue(),
sToDatePicker = "__input_validTo",
oToDatePicker = this.byId(sToDatePicker);
oToDatePicker.getBinding("value").setType(new sap.ui.model.type.Date(null, {
minimum: new Date(sValue)
}), "string");
},
handleValidToChange: function (oEvent) {
var oDatePicker = oEvent.getSource(),
sValue = oDatePicker.getValue(),
sFromDatePicker = "__input_validFrom",
oFromDatePicker = this.byId(sFromDatePicker);
oFromDatePicker.getBinding("value").setType(new sap.ui.model.type.Date(null, {
maximum: new Date(sValue)
}), "string");
}