1

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

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

知道是什么原因造成的吗?

4

1 回答 1

6

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

您可以通过将 a 定义为来调整数据以将其发送到服务器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实际定义

于 2013-01-14T16:40:14.010 回答