Sapui5 sap.m.Date(Time)选择器的掩码输入

Sapui5 sap.m.Date(Time)选择器的掩码输入,sapui5,Sapui5,使用sap.m.DateTimePicker,用户可以从下拉列表中选择值或手动输入值。我想知道是否有办法在手动输入框中添加一个与DateTimePicker的valueFormat匹配的掩码 我知道也有一个sap.m.MaskInput,所以也许有一种方法可以将这两个元素结合起来。我认为将两个sap.m.DateTimePicker和sap.m.MaskInput结合起来的唯一方法是开发您自己的控件。文档: 另一种方法是只使用DateTimePicker输入字段的占位符。这不提供与MaskInp

使用
sap.m.DateTimePicker
,用户可以从下拉列表中选择值或手动输入值。我想知道是否有办法在手动输入框中添加一个与
DateTimePicker
valueFormat
匹配的掩码


我知道也有一个
sap.m.MaskInput
,所以也许有一种方法可以将这两个元素结合起来。

我认为将两个sap.m.DateTimePicker和sap.m.MaskInput结合起来的唯一方法是开发您自己的控件。文档:


另一种方法是只使用DateTimePicker输入字段的占位符。这不提供与MaskInput相同的功能,但有助于用户在手动输入时输入所需的valueFormat。

如果输入框中有绑定,则可以将绑定中的类型设置为例如sap.ui.model.type.Date。这样,当触发字段验证时,可以自动设置格式。还有其他可用的类型,您可以从sap.ui.model.SimpleType继承来编写自己的代码。

有一个新的私有模块,名为sap.m.InputBase(即DateTimePicker)应该使用它

(MaskEnabler)应应用于
sap.m.InputBase
的原型

遮罩功能当前仅在(v1.54)中启用。然而,根据消息,同样的功能也将到达日期(时间)选择器:

此更改准备重构日期选择器和时间选择器,以便 两个选择器的公共代码可以移动到新的公共控件 它们可能会延长

因此,如果不是紧急的,并且取决于您的项目,我不会创建一个新的自定义控件,然后在掩码功能到达后将其丢弃

我会在答案可用时更新答案


在此之前(甚至之后),您仍然可以引导用户通过OData绑定类型以正确的格式输入数据:


  • type
    允许我们保持双向数据绑定
  • 在以下情况下,将自动截取输入值以更新模型数据。。。
  • 由于格式无效,无法对其进行分析()
  • 可以对其进行分析,但违反了
    约束
    (激发
    验证错误
  • 如果你 此外,框架将负责创建适当的 给用户的消息:


示例:

然后我失去了
日期时间选择器的功能,尤其是下拉日历太棒了!我现在只使用一个占位符值,当它变为available@GianPaoloBuffo您可以保留占位符,但UI5提供了更强大的方法来通知用户如何正确输入数据。由于双向数据绑定和绑定类型,数据将始终正确地存储在模型中,并在UI中进行适当的格式化。看看我最新的答案。
<DateTimePicker
  value="{
    path: 'myODataModel>myDateTime',
    type: 'sap.ui.model.odata.type.DateTime',
    constraints: {
      isDateOnly: true,
      displayFormat: 'Date'
    }
  }"
  minDate="{...}"
  maxDate="{...}"
/>