我正在尝试为绑定模型字段创建一个剑道日期选择器,但格式为“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”格式输入了正确的月份和年份?
自定义格式也将用于解析输入。 https://docs.telerik.com/kendo-ui/api/javascript/ui/datepicker/configuration/format
解决方案可以在日期选择器中显示自定义格式,但有一个隐藏字段用于提交有效的日期格式。隐藏字段可以在更改事件时更新。 https://docs.telerik.com/kendo-ui/api/javascript/ui/datepicker/events/change
这是一个不同的答案,使用 Se SendKeys() 方法。
观察手动输入日期的工作方式,得出此解决方案:
研究如何访问日期选择器图标。这很棘手,但当弄清楚后,会将其发布在这里和另一个链接中:
只需修改其他日期格式即可。请注意,小写的 m、mm 等是 Kendo 日期选择器的分钟。月份必须大写 MM、MMM。
输入 2 位数日期后,选择器会跳至月份部分。可以发送月份的字符,或者可以使用 1-12 月的字符。 MMM 自动将 1-12 转换为 3 个字符的月份值。
只需设置 Se 测试即可找出其他问题。
“我会回来...”使用日期选择器图标解决方案。