更新Kendo UI Grid更新日期

时间:2013-01-14 06:16:46

标签: javascript jquery kendo-ui

在我的网格中,我有一个包含以下参数的日期列:

update: {
            url: ROOT+"user/update-user",
            type: "POST"
        }

columns: [
    {...},
    {
        field: "DoB",
        width: 68,
        title: "DoB",
        format: "{0:dd/MM/yyyy}",
        template: '#= kendo.toString(DoB,"dd/MM/yyyy") #'
    },
    {...}

datasource: {
    ...
    schema: {
        model: {
            DoB: {type: "date", editable: false, format: "{0:dd/MM/yyyy}"},
        }
    }
}

问题是,当我尝试更新日期列时,它发送了一个非常长的日期,而不是SQL样式日期“YYYY-MM-DD”:

Wed Jan 09 2003 00:00:00 GMT +0000 etc

知道造成这种情况的原因是什么?

1 个答案:

答案 0 :(得分:6)

原因是当KendoUI即将向服务器发送数据时,它会将您的数据序列化为stringdate类型的默认序列化为长格式。

您可以通过将transport.update定义为:

来调整数据以将其发送到服务器
update: {
    url : ROOT + "user/update-user",
    type: "POST",
    data: function (data) {
        data.DoB = kendo.toString(data.DoB, "yyyy-MM-dd");
        return data;
    }
},

注意您可能需要一些额外的验证,以确保DoB实际定义