无法使用KendoUI Grid和Knockout-Kendo格式化日期

时间:2013-05-02 15:39:38

标签: knockout.js kendo-ui kendo-grid

我无法使用Kendo Grid解析日期。 我正在使用Knockout-Kendo来协助数据绑定。

我试图解析的json响应中的日期字符串看起来像 2012-03-13T00:00:00

Kendo网格的列定义包含format: '{0:MM/dd/yyyy}',它似乎适用于另一个不使用Knockout-Kendo来解析完全相同的日期字符串的网格。

我已经创建了(从一个单独的问题重新使用)一个演示的jsFiddle the issue fully here

我想远离行模板只是因为我还没有弄清楚如何在敲除绑定中正确设置它们,但我完全愿意接受替代或“正确”建议。

3 个答案:

答案 0 :(得分:4)

可以在配置中指定dataSource。您仍然需要指定一个data键,因此绑定知道您正在传递选项而不仅仅是数据。

可以看起来像:

<div id="grid" data-bind="kendoGrid: {  
                                data: undefined,
                                dataSource: {
                                    data: SaleSearchResults,
                                   schema: { model: { fields: { SaleDate: { type: 'date' } } } }    
                                },

此处更新了小提琴:http://jsfiddle.net/rniemeyer/EUFxg/

答案 1 :(得分:0)

如果要将数据作为数组返回,则需要指定datetype

<script type="text/javascript">
$(document).ready(function () {
    $("#grid").kendoGrid({
        selectable: "row",
        groupable: true,
        sortable: true,
        navigatable: true,
        pageable: true,
        columns: [
                {
                    field: "RunDate",
                    title: "Run Date",
                    width: 100,
                    format: "{0:yyyy-MM-dd}"
                }
            ],
        dataSource: {
            type: "json",
            transport: {
                read: "api/Data"
            },
            serverPaging: true,
            pageSize: 5,
            schema: {
                data: "Data",
                total: "Count",
                model: { fields: { RunDate: { type: "date"} } } 
            }
        }
    });
});

答案 2 :(得分:0)

尝试以这种方式格式化剑道网格中的日期

columns.Bound(x =&gt; x.LastUpdateDate).ClientTemplate(“#= kendo.toString(LastUpdateDate,\”MM / dd / yyyy hh:mm tt \“)#”);