sap.m.Date(Time)Picker的掩码输入

时间:2018-01-09 11:26:23

标签: sapui5

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

我知道那里还有一个DateTimePicker,所以也许可以将这两个元素结合起来。

3 个答案:

答案 0 :(得分:2)

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

  

(MaskEnabler)应该应用于sap.m.InputBase

的原型

屏蔽功能目前仅在sap.m.TimePicker(v1.54)中启用。但是,根据this commit消息,相同的功能也会到达日期(时间)选择器:

  

此更改准备重构DatePicker和TimePicker,以便进行重构   两个选择器的公共代码可以移动到一个新的公共控件   他们可以延长。

因此,如果它不紧急,并且根据你的项目,我不会创建一个新的自定义控件,然后在面具功能到达后将其丢弃。

我会在可用时更新我的​​答案。

在此之前(甚至之后),您仍然可以指导用户通过OData绑定类型sap.ui.model.odata.type.DateTime以正确的格式输入数据:

<DateTimePicker
  value="{
    path: 'myODataModel>myDateTime',
    type: 'sap.ui.model.odata.type.DateTime',
    constraints: {
      isDateOnly: true,
      displayFormat: 'Date'
    }
  }"
  minDate="{...}"
  maxDate="{...}"
/>
  • In contrast to formattertype允许我们保持双向数据绑定。
  • 当...时,自动拦截输入的值以更新模型数据
    1. 由于格式无效(fires parseError
    2. ,无法对其进行解析
    3. 可以解析但constraints被违反(触发validationError
  • 如果您enable handling UI messages 此外,框架将负责创建适当的 用户留言:

    OpenUI5 Input Validation Date

示例: https://stackoverflow.com/a/48482544

答案 1 :(得分:0)

我认为将两个sap.m.DateTimePicker和sap.m.MaskInput结合起来的唯一方法是开发自己的控件。文档:https://sapui5.hana.ondemand.com/#/topic/91f1703b6f4d1014b6dd926db0e91070

另一种方法是只使用DateTimePicker输入字段的占位符。这不提供与MaskInput相同的功能,但在手动输入时,可以帮助用户在输入中预期valueFormat。

答案 2 :(得分:-1)

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