Kendo数据源和网格内联编辑,添加新项目,始终创建一个ID为0的新行

时间:2012-05-08 18:53:29

标签: kendo-ui

我正在使用Kendo datasoure和kendo网格进行内联编辑。 当我添加/创建一个新行时,新行将发布到我的创建URL(我使用的是帖子)。我的问题是在查询参数中,id字段的值为零,是否有办法使其为空或从查询字符串中删除它,在某些js event.before中将其发布到创建URL。

感谢。

2 个答案:

答案 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!");
        }
    });
},

对您来说重要的是您在成功方法中所做的事情。快乐的编码!