2013-02-15 76 views
4

我遇到了从ASP.NET WebAPI生成的ISO 8601格式问题,并使用Knockout-Kendo.js绑定到KendoUI DatePicker构件。Knockout-Kendo.js DatePicker/WebAPI/ISO 8601日期绑定

参考文献:

http://cdn.kendostatic.com/2012.3.1315/styles/kendo.common.min.css 
    http://cdn.kendostatic.com/2012.3.1315/styles/kendo.default.min.css 
    http://cdn.kendostatic.com/2012.3.1315/js/kendo.core.min.js 
    http://cdn.kendostatic.com/2012.3.1315/js/kendo.web.min.js 
    http://ajax.aspnetcdn.com/ajax/knockout/knockout-2.2.1.js 
    http://rniemeyer.github.com/knockout-kendo/js/knockout-kendo.min.js 

HTML:

<span data-bind="text: bigday"></span><br /> 
    <input data-bind="kendoDatePicker: bigday" /> 

的Javascript:

function ViewModel() { 
     var self = this; 
     self.bigday = ko.observable("2013-06-01T00:00:00"); 
     // ISO 8601 date as returned from ASP.NET WebAPI 
    } 

    ko.applyBindings(new ViewModel()); 

http://jsfiddle.net/bschafer/NGLEp/

出于某种原因,该值不绑定到t他KendoDatePicker,但它是有约束力的跨度没有问题。

+0

最后,我用以下方法进行绑定。 data-bind =“kendoDatePicker:{value:bigday,parseFormats:['yyyy-MM-dd']}” 这允许控件根据区域设置自动调整显示。我已经更新了小提琴。 谢谢你的帮助nemesv! – bschafer 2013-02-15 21:44:55

回答

4

的Kendo.UI DatePicker的使用following default date time formatMM/dd/yyyy h:mm tt

所以,你只需要与format选项来修改:

<input data-bind="kendoDatePicker: { value: bigday, format: 'yyyy-MM-dd' }" /> 

演示JSFiddle

请注意,还有一个parseFormats,如果您想以一种格式解析日期,但以不同的格式显示它们,则可以使用它。

+0

感谢您帮助小菜! :) – bschafer 2013-02-15 21:27:31