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");
    }