我正在使用Kendo datasoure和kendo网格进行内联编辑。 当我添加/创建一个新行时,新行将发布到我的创建URL(我使用的是帖子)。我的问题是在查询参数中,id字段的值为零,是否有办法使其为空或从查询字符串中删除它,在某些js event.before中将其发布到创建URL。
感谢。
答案 0 :(得分:1)
听起来ID应该是一个自动增量字段,在这种情况下,您不会将ID插入数据库。然后,您的数据源应该具有类似这样的(未记录的方法),以便在创建后刷新网格,这将使用数据库分配的ID填充您的ID字段:
create: {
url: "[your create url]",
complete: function(e){
$('#grid').data('kendoGrid').dataSource.read();
}
}
这应该可以解决你的问题。
答案 1 :(得分:0)
不,最新的KendoUI的datasource传输方法没有名为'complete'的参数。你必须使用jquery ajax请求。此外,您只能使用KendoUI的trasnport方法或jquery ajax。结合不起作用。例如:
create:function (options) {
$.ajax({
url:base + entityName + "/create",
data:"models=" + kendo.stringify(options.data.models),
type:"POST",
dataType:"json",
async:false,
global:false,
success:function (result) {
if (result.errors == null) {
//GridHandlers.refreshGrid(gridId);
options.success(result);
} else {
GridHandlers.accounceAndResume(gridId, result.errors);
}
},
error:function (xhr, textStatus, errorThrown) {
console.log("Error: " + (errorThrown ? errorThrown : xhr.status));
GridHandlers.accounceAndResume(gridId, "Could not create new record. Connection problem!");
}
});
},
对您来说重要的是您在成功方法中所做的事情。快乐的编码!