Kendo Grid使用弹出编辑器处理创建/删除错误

时间:2013-11-11 22:14:27

标签: kendo-ui kendo-grid

我有一个创建/删除的kendo网格,它们都以错误结尾。 我想:。

  1. 在删除时出现错误以防止从网格中删除行(这是出错时的默认行为)
  2. 出现创建错误时阻止弹出编辑器关闭
  3. 请看这个小提琴: http://jsfiddle.net/andreigavrila/p49eV/2/

    var data = [
      { Id: 1, Name: "Decision 1", Code: 1 },
      { Id: 2, Name: "Decision 2", Code: 2 },
      { Id: 3, Name: "Decision 3", Code: 3 }
    ]; 
    
    $("#grid").kendoGrid({
            dataSource: {
                error: function (a) {
                    console.log('error');
                    $('#grid').data("kendoGrid").cancelChanges();
    
                    //$('#grid').data("kendoGrid").one("dataBinding", function (e) {
                       //e.preventDefault();   // cancel grid rebind
                    //});
                },
                transport: {
                    read: function(e) {                                
                      e.success({data: data});
                    },
                    create: function(e) { 
                      console.log('creating');
                      e.error();
                    }, 
                    destroy: function(e) { 
                      console.log('deleting')
                      e.error();
                    }
                },
                schema: {
                    data: "data",
                    model: {
                        id: "Id",
                        fields: {
                            Id: { type: "number" },
                            Code: { type: "number" },
                            Name: { type: "string" }
                        }
                    }
                }
            },
            toolbar: ["create"],
            columns: [
                { field: "Code", title: "Code", },
                { field: "Name", title: "Name" },
                { command: ["destroy"], title: " " }],
            editable: {
                mode: "popup"
            }
        });
    

    默认情况下第二点有效(因此在创建时出现错误不会关闭弹出窗口)

    第一点的工作原理是添加错误功能,但会破坏弹出窗口(错误时会关闭)。

    所以我可以同时拥有一个,但不能同时拥有两个。我有点卡住了。 我还在剑道论坛上看到了这两个问题:

    第二个链接表示“为防止Grid关闭,您需要阻止下一个dataBinding事件。”但我无法做到这一点。

    感谢您的帮助。

    安德烈

1 个答案:

答案 0 :(得分:3)

我终于设法将其推向了剑道论坛:

官方解决方案: http://www.kendoui.com/forums/kendo-ui-web/grid/kendo-grid-handling-create-delete-errors-with-popup-editor.aspx

  

“我建议你在错误事件处理程序中使用if条件   确定应该执行哪两个变通办法。在这   case服务器应提供有关错误类型的信息   发生了。您可以从错误事件中检索错误状态   参数“。