使用java.util.Date的kendo网格不起作用

时间:2015-07-23 07:13:07

标签: datetime kendo-ui kendo-grid

我有一个使用ajax请求填充数据的kendo网格。

从控制器返回的模型有一个名为java.util.Date的{​​{1}}字段,该字段的json返回数据就像

someDate

{"total":3, "data":[ {"someDate":1433116800000,"someValue":111.00}, {"someDate":1444116800000,"someValue":222.00}, {"someDate":1455116800000,"someValue":333.00}]} 如下:

dataSouce
网格中的

"dataSource": { "schema": { "total":"total", "data":"data" }, "transport":{ "parameterMap":function parameterMap(options, operation) { if(operation==="read"){ return JSON.stringify(options); } else { return JSON.stringify(options.models); } }, "read":{ "dataType":"json", "contentType":"application/json", "type":"POST", url : "${ajaxGetData}&param="+someParam } } 就像这样

columns

问题是日期和时间显示不正确。如果我使用模板,我必须删除"columns": [{ "field":"someValue", "title":"Some Value", "type":"numeric" },{ "field":"someDate", "title":"Date", "type":"date", format:"{0:yyyy-MM-dd hh:mm:ss tt}" } 才能使其正常工作,但过滤器无法正常工作。

"type":"date"

如何以特定格式显示template:'#= kendo.toString( new Date(someDate), "yyyy/MM/dd hh:mm:ss tt") #' Date

这个JS Fiddle可能有所帮助(但是没有精确的json结构,包含数据和总数)

1 个答案:

答案 0 :(得分:1)

是否可以为您的日期使用ISO 8601格式,如果模型定义中的类型日期可能起作用(如果您使用GSON库,请查看here

修改

根据您可以使用schema.parse的评论,使用您提供的小提琴的示例将如下所示:

var grid = $("#grid").kendoGrid({
    dataSource: {
        data: createRandomData(10),
        schema: {
            model: {
                fields: {
                    FirstName: { type: "string" },
                    LastName: { type: "string" },
                    City: { type: "string" },
                    Title: { type: "string" },
                    BirthDate: { type: "date" },
                    Age: { type: "number" }
                }
            },
            parse: function(response) {
                  var products = [];
                  for (var i = 0; i < response.length; i++) {
                      response[i].BirthDate = new Date(response[i].BirthDate);
                  }
                  return response;
                }
        },
        pageSize: 10
    },
    height: 500,
    scrollable: true,
    sortable: true,
    selectable: true,
    change:onChangeSelection,            
    filterable: true,
    pageable: true,
    columns: [
        {
            field: "FirstName",
            title: "First Name"
        },
        {
            field: "LastName",
            title: "Last Name"
        },
        {
            field: "City"
        },
        {
            field: "Title"
        },
        {
            field: "BirthDate",
            title: "Birth Date",
            //template: '#= kendo.toString(BirthDate,"MM/dd/yyyy") #'
        },
        {
            field: "Age"
        }
    ]
}).data("kendoGrid");

我希望它有效。