【发布时间】:2013-07-24 05:40:03
【问题描述】:
我在表单上使用 RadDatePicker 控件作为开始和结束日期输入控件。
我将“01/01/1980”作为最小日期,将“12/31/2049”作为最大日期。在日期文本框中手动输入日期时遇到问题。
场景 1: 我输入日期为 123129。RadPicker 正确地将其选为 12/31/2029 并显示格式化的日期值。
场景 2:我输入日期为 123130。我收到客户端验证警告。无论我输入什么日期和月份,它都会在大于 XX/XX/29 (2029) 的年份中每次冻结。
场景 3:我输入日期为 12312030 - 完整年份,而不是仅仅最后 2 位数字。 RadPicker 正确地将其选为 2030 年 12 月 31 日并显示格式化的日期值。
我也在ASP.NET Calendar Demo - DatePicker - First Look 上测试了所有 3 个场景。
我不确定为什么即使最大日期设置为 12/31/2049 也会启动验证。
请协助我解决此问题。
谢谢,
毗婆尸
【问题讨论】:
-
我认为您在 Telerik DLL 中发现了一个错误。顺便说一句:您是否必须出于某种原因输入 MMDDYY 格式的日期,或者您只是想找到这种行为的原因?
-
@Andreaoid:当我彻底测试了 RadDatePicker 控件时,这是我最初的反应。关于输入格式,这是问题描述中提到的要求之一。我们的测试团队(意外地)发现输入不带“/”的日期也可以... :)
-
是的,出于某种原因,即使范围小于 100 年,他们也不接受 MMDDYY……这肯定是检查过程中的错误。 :)
-
我终于从他们那里得到了解决方案。根据 Telerik 专家的说法:遇到的问题是由于从 30 年及以上开始的年份被解析为 19XX 造成的。这意味着 123129 将被解析为 12/31/2029,而 123130 将被解析为 12/31/1930。现在这是一个无效的日期,因为 MinDate 属性的默认值为 1/1/1980。将 DateInput 的“ShortYearCenturyEnd”属性设置为 2099 可以解决该问题。
<telerik:RadDatePicker runat="server" ID="Picker1" MinDate="" DateInput-ShortYearCenturyEnd="2099"></telerik:RadDatePicker> -
好。我建议您发布自己的答案并接受以关闭问题。
标签: asp.net validation telerik date-formatting raddatepicker