Kendo Timepicker格式化无法正常工作

时间:2014-04-10 11:07:26

标签: asp.net-mvc asp.net-mvc-4 kendo-ui timepicker

我正在使用MVC Kendo Timepicker。它工作正常,除了我不能格式化军事时间的时间。在我为军事时间添加格式后,一旦我选择了验证未通过的时间,它就会告诉我它必须是日期。有没有办法格式化TimePickerFor以允许军事时间?

@using Kendo.Mvc.UI
@model DateTime?

@(Html.Kendo().TimePickerFor(m=>m)
    .Value(@Model)
    .Min("05:00")
    .Max("00:00")
    .Format("{0:HHmm}")
)

更新:这不适用于格式被更改为.Format(“HHmm”)

2 个答案:

答案 0 :(得分:2)

好的,感谢剑道人,我找到了答案。脚本可能需要一些工作,具体取决于具体情况。我的TimePickerFor位于编辑器模板中,该模板与其他时间戳和数字文本框位于网格中。只有这种工作方式的事情是,一旦脚本被触发,数字框也使用此脚本进行验证(因此返回$ .isNumeric(input.val())行。希望这有助于其他人。

TimePickerFor Control:

@using Kendo.Mvc.UI
@model DateTime?

@(Html.Kendo().TimePickerFor(m=>m)
    .Value(@Model)
    .Format("HHmm")
    .HtmlAttributes(new{data_format="HHmm"})
    .ParseFormats(new[]{"HHmm"})
)

<script>
    var originDate = kendo.ui.validator.rules.mvcdate;

    kendo.ui.validator.rules.mvcdate = function(input) {
        var format = input.attr("data-format");

        if (input.val() == "") {
            return kendo.parseDate("0000", format);
        }

        if (format) {
            return kendo.parseDate(input.val(), format);
        } else {
            return $.isNumeric(input.val());
        }
    };
</script>

答案 1 :(得分:0)

我认为您必须删除花括号并确保它是有效的格式类型。我也不认为0是必要的。

这里有一些格式化文档 http://docs.telerik.com/kendo-ui/getting-started/framework/globalization/dateformatting

@(Html.Kendo().TimePickerFor(m=>m)
.Value(@Model)
.Min("05:00")
.Max("00:00")
.Format("yyyy/MM/dd hh:mm tt")
)

修改: 您的最大值和最小值是否正确?我不知道这在逻辑上是否正确。