Amr*_*mry 21 telerik asp.net-mvc-4 kendo-ui
我正在使用Kendo DatePicker来编辑我的ASP.NET MVC 4项目中的Kendo Grid中显示的Date字段.为了让DatePicker用于Date字段,请使用自定义日期格式字符串,我将Date.cshtml文件EditorTemplates夹下的文件更新为以下内容:
@(Html.Kendo().DatePickerFor(m => m).Format("dd/MM/yyyy"))
Run Code Online (Sandbox Code Playgroud)
通过这样做,我设法让DatePicker显示我想要的格式.但是,它无法通过手动键入或从弹出日历中选择输入的输入日期验证.
经过进一步调查,我可以说DatePicker正在根据M/d/Y格式验证日期.这个假设是基于我的建立而得出的,即12/1/2012是一个有效的日期,而13/1/2012则不是.
我也尝试添加.ParseFormat("dd/MM/yyyy")到DatePicker声明的末尾,Date.cshtml但它没有修复任何东西.所以我会说这肯定是一个错误,我稍后会向Telerik报告.
但就目前而言,我正在寻找一种解决方法来实现这一目标.我发现我可以kendo.ui.validator.rules.mvcdate在Javascript中覆盖以拥有自己的验证功能.虽然这在Chrome中运行良好,但在IE9中无效.
那么,任何想法如何让DatePicker接受dd/MM/yyyy输入格式?提前致谢.
Geo*_*e K 12
在内部,ASP.NET MVC的日期验证规则(不显眼的客户端验证)使用kendo.parseDate(string)方法,如果没有定义格式/ s ,它将在内部使用预定义的日期模式.我认为在您的情况下,默认文化是"en-US",这就是验证失败的原因,因为具有"dd/MM/yyyy"格式的日期被视为无效.一种可能的解决方案是覆盖日期验证规则(就像您一样)并使用特定格式解析字符串.另一个选项是为页面设置差异文化设置.例如,"de-DE"文化的短日期格式是"dd/MM/yyyy".
Ros*_*sim 10
我使用这种方法,它工作正常..
在页面中添加这两行.
<script src="@Url.Content("~/Scripts/jquery.validate.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")"></script>
Run Code Online (Sandbox Code Playgroud)
然后覆盖jQuery日期验证方法..
<script>
$(document).ready(function () {
kendo.culture("en-MY"); //your culture
$.validator.addMethod('date',
function (value, element) {
return this.optional(element) || kendo.parseDate(value)
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
与此同时,我Web.config有这个......
<system.web>
<globalization uiCulture="en-MY" culture="en-MY"></globalization>
</system.web>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31249 次 |
| 最近记录: |