我正在使用带有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”来识别Create / Update,它检查ID是否为===为默认值。 我发现谷歌搜索的所有例子都使用ID作为数字增量值......但在我的表中,ID是一个字符串(显然是唯一的),需要由用户插入!!
希望我已经很好地解释了,问题应该是明确的:如果用户插入ID,数据源将无法识别它是一个创建操作... 否则,如果我使用手动ID插入,则创建将起作用...但是行将以默认值(空字符串)插入到DB中,这是错误的!
我该如何解决这个问题? 感谢。
[编辑]上瘾信息: 我正在使用最新版本的Kendo-ui和Odata 2.0