Kendo UI 日期选择器,自定义格式为“MMMyy”

问题描述 投票:0回答:2

我正在尝试为绑定模型字段创建一个剑道日期选择器,但格式为“MMMyy”而不是完整日期。用户需要查看格式为“MMMyy”的日期。

这是我的模型字段:

[DisplayFormat(DataFormatString = "{0:MMMyy}")]
public DateTime? DeliveryMonthDate { get; set; }

这是视图中表单中的我的日期标记:

@Html.LabelFor(model => model.DeliveryMonthDate, new { @class = "caption text-bold" }, true)
@(Html.Kendo().DatePickerFor(model => model.DeliveryMonthDate)
.Name("DeliveryMonthDate")
.Start(CalendarView.Year)
.Depth(CalendarView.Year)
.Format("MMMyy")
.ParseFormats(new string[] { "MMMyy" })
)
@Html.ValidationMessageFor(model => model.DeliveryMonthDate)

当用户从日期选择器中选择月份时,该值会以 MMMyy 格式正确显示(例如 Nov18)。 但是,由于它不是有效的日期格式,因此会发生验证错误(此字段必须是日期)。

如何验证日期选择器中是否以“MMMyy”格式输入了正确的月份和年份?

asp.net-mvc validation kendo-ui kendo-datepicker
2个回答
0
投票

自定义格式也将用于解析输入。 https://docs.telerik.com/kendo-ui/api/javascript/ui/datepicker/configuration/format

解决方案可以在日期选择器中显示自定义格式,但有一个隐藏字段用于提交有效的日期格式。隐藏字段可以在更改事件时更新。 https://docs.telerik.com/kendo-ui/api/javascript/ui/datepicker/events/change


0
投票

这是一个不同的答案,使用 Se SendKeys() 方法。

观察手动输入日期的工作方式,得出此解决方案:

Using Web Driver and Send Keys method to enter a date

研究如何访问日期选择器图标。这很棘手,但当弄清楚后,会将其发布在这里和另一个链接中:

另一篇关于使用 Se 进行日期格式化的 SO 帖子

第三篇SO帖子

只需修改其他日期格式即可。请注意,小写的 m、mm 等是 Kendo 日期选择器的分钟。月份必须大写 MM、MMM。

输入 2 位数日期后,选择器会跳至月份部分。可以发送月份的字符,或者可以使用 1-12 月的字符。 MMM 自动将 1-12 转换为 3 个字符的月份值。

只需设置 Se 测试即可找出其他问题。

“我会回来...”使用日期选择器图标解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.