imp*_*335 1 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}"},
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我尝试更新日期列时,它发送一个非常长的日期而不是SQL样式日期"YYYY-MM-DD":
Wed Jan 09 2003 00:00:00 GMT +0000 etc
Run Code Online (Sandbox Code Playgroud)
知道是什么导致了这个吗?
原因是当KendoUI即将向服务器发送数据时,它会将您的数据string序列化为,并且date类型的默认序列化是长格式.
您可以通过定义transport.updateas 来调整数据以将其发送到服务器:
update: {
url : ROOT + "user/update-user",
type: "POST",
data: function (data) {
data.DoB = kendo.toString(data.DoB, "yyyy-MM-dd");
return data;
}
},
Run Code Online (Sandbox Code Playgroud)
注意您可能需要一些额外的验证来确保DoB实际定义