Sql 使用OData和剑道网格插入数据库问题
我正在使用剑道网格,数据源使用Odata类型。 从数据源在数据库中创建新行时遇到问题。 这是我的数据源代码:Sql 使用OData和剑道网格插入数据库问题,sql,kendo-ui,kendo-grid,odata,kendo-datasource,Sql,Kendo Ui,Kendo Grid,Odata,Kendo Datasource,我正在使用剑道网格,数据源使用Odata类型。 从数据源在数据库中创建新行时遇到问题。 这是我的数据源代码: var ds = new kendo.data.DataSource({ type: "odata", transport: { read: { url: baseUrl, dataType: "json"
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得到了一个新的方法来区分Create/Update,它检查ID是否为默认值。
我在谷歌上找到的所有例子都是使用ID作为数字增量值。。。但是在我的表中,ID是一个明显唯一的字符串,需要用户插入
希望我已经很好地解释了自己,问题应该很清楚:如果用户插入ID,数据源将无法识别这是一个创建操作。。。
否则,如果我放弃手动ID插入,创建将工作。。。但是该行将以默认值空字符串插入数据库,这是错误的
我怎样才能解决这个问题?
谢谢
[编辑]成瘾信息:
我正在使用最新版本的剑道ui和OData2.0您可以添加一个与Id列具有相同值的新列。添加新记录时,在该新列中添加您的唯一Id,而忽略原始Id列,这将具有默认值。在服务器上使用新列。我知道这不是一个好的解决方案,而是一个解决办法。谢谢你的回答,我考虑过这样的事情。但您的意思是在数据库中添加一个可能有问题的新列,或者只在网格中添加?不,您不需要在db中添加列。在kendo数据源中添加一个字段,并在业务对象中添加相同的属性,您正在服务器端使用该属性