2016-08-15 85 views
0

我在我的ASP.NET MVC项目中使用Telerik Kendo UI框架,并且我想启用一个让用户在DateTimePicker输入中输入自由文本的功能,例如:20150820,20150820 1330Kendo DateTimePicker ParseFormats不工作

Kendo DateTimePicker具有内置属性,名为“parseFormats”来实现此任务。然而,它未能在下面的情况:

<input ... data-parse-foramts="['ddMMyyyy HHmm','ddMMyyyy', 
'dd-MM-yyyy', 'dd-MM-yyyy HH:mm', 'yyyyMMdd', 'yyyyMMdd HHmm']" ... /> 

的最后一个值,让用户输入自由文本像,它应该被解析为2015-20-20 13:30,但是部分时间(13:30)不起作用,控件总是显示00:00。所有其他包含的格式按预期工作。

虽然我尝试将格式简化为data-parse-formats="['yyyyMMdd HHmm']",但一切都很顺利。

为什么会发生这种情况,我该如何实现我想要的功能?

+2

它在文档中提到,顺序应该是'提供的解析格式的顺序是重要的,它应该从更严格到不严格。看起来你已经否决了你的情况。你正在从不严格到严格!请参阅:http://docs.telerik.com/kendo-ui/api/javascript/ui/timepicker#configuration-parseFormats – Vijai

+0

@Vijai谢谢..我可以想念那句话......你救了我的命! – shole

+0

您现在应该回答您的问题以帮助他人。 –

回答

0

由于@Vijai在评论中提到,问题的关键点在于,解析格式阵列应该有一个严格的顺序:

所提供的解析格式的顺序很重要,它从严格的应不太严格。

这意味着yyyyMMdd HHmmttyyyyMMdd之前应该将等

这里是我的细化解析格式,其中所包含的全部格式做工精细:

['ddMMyyyy HHmm', 'yyyyMMdd HHmm', 'dd-MM-yyyy HH:mm', 'dd-MM-yyyy', 'yyyyMMdd', 'ddMMyyyy', 'HHmm']