2013-01-24 123 views
13

我在Kendo网格上使用edit事件来显示几个隐藏列。然后,我会再次将它们隐藏在save事件中。Kendo Grid取消编辑事件

问题我有,似乎没有取消编辑模式的事件,所以如果用户单击取消,该列会被搞砸。

是否有无证的活动取消或我需要找到解决办法?

回答

18

基本上没有这种“取消”事件,但是您可以在网格的еdit事件中的“取消”按钮上附加单击事件。请检查下面的例子:

function onEdit(e) { 
    e.container.find(".k-grid-cancel").bind("click", function() { 
     //your code here 
    }) 
} 

编辑:从一些时间t 他格有 “取消” 事件可以用来代替上述溶液:

11

我一直在寻找同一个问题的答案,但这不适合我。我有一个场景,我的网格中的新的和编辑过的记录在我的控制器中被验证,并且错误消息被添加到ModelState的ModelError集合中。我已经迷上了网格的数据源错误事件,然后警报中显示的错误信息,然后添加了重置变化如下:

$('#MyGrid').data("kendoGrid").cancelChanges(); 

这对我是一个巧妙的解决办法,因为我使用分页和用户正在查看的当前页面被保留。

+1

在错误事件中,您也可以使用this关键字来取消更改,即。 this.CancelChanges()而不是指定整个路径。 –

+0

是否可以使用cancelChanges()作为特定的列? – ManirajSS

7

与接受的答案的状态相反,实际上cancel event与编辑事件一样。

$("#grid").kendoGrid({ 
    ... 
    edit: function(e) { 
     alert("edit") 
    }, 
    cancel: function(e) { 
     alert("cancel"); 
    }, 
    ... 
}); 
+0

如果使用“incell”编辑模式,则不会触发取消事件。文档说它只会触发“内联”或“弹出”编辑模式。 –