我正在使用带有 Odata 类型的数据源的 Kendo Grid。我无法从数据源在数据库中创建新行。这是我的数据源代码:
var ds = new kendo.data.DataSource({
type: "odata",
transport: {
read: {
url: baseUrl,
dataType: "json"
},
update: {
url: function (data) {
return baseUrl + "('" + data.ID_Agenzia + "')";
}
},
create: {
url: baseUrl
},
destroy: {
url: function (data) {
return baseUrl + "('" + data.ID_Agenzia + "')";
}
}
},
schema: {
model: {
id: "ID_Agenzia",
fields: {
ID_Agenzia: { type: "string" },
// etc... my other fields omitted for brevity.
}
}
},
pageSize: 20,
serverPaging: true,
serverFiltering: true,
serverSorting: true
});
然后我尝试了一个带有自动工具栏创建的简单网格(非常标准,我想我可以省略代码),使用这个 DS。
据我了解,Kendo 有一个方法“isNew”来区分创建/更新,并检查 ID 是否 === 为默认值。我在谷歌上搜索的所有示例都使用 ID 作为数字增量值......但在我的表中,ID 是一个字符串(显然是唯一的),需要由用户插入!!
希望我已经很好地解释了自己,问题应该很清楚:如果用户插入 ID,数据源将无法识别这是一个创建操作......否则,如果我禁止手动插入 ID,则创建将起作用.. . 但是该行将以默认值(空字符串)插入数据库中,这是错误的!
我该如何解决这个问题?谢谢。
[编辑] 附加信息:我正在使用最新版本的 Kendo-ui 和 Odata 2.0