我正在使用剑道网格上的edit
事件来显示几个隐藏列。然后,我将在save
事件中再次隐藏它们。
我遇到的问题是似乎没有取消编辑模式的事件,因此如果用户单击取消,该列就会搞砸。
是否有未记录的事件需要取消,或者我需要找到解决方法?
基本上没有这样的"取消"事件,但是您可以在网格的 еdit 事件中的"取消"按钮上附加单击事件。请检查以下示例:
function onEdit(e) {
e.container.find(".k-grid-cancel").bind("click", function () {
//your code here
})
}
编辑:从一段时间开始,网格有"取消"事件,可以使用该事件代替上述解决方案:
- 取消事件
在寻找同一问题的答案,但这对我不起作用。我有一个场景,在我的控制器中验证网格中的新记录和编辑的记录,并将错误消息添加到 ModelState 的 ModelError 集合中。我已经挂接了网格的数据源错误事件,然后在警报中显示错误消息,然后添加了以下内容来重置更改:
$('#MyGrid').data("kendoGrid").cancelChanges();
这对我来说是一个很好的解决方案,因为我正在使用分页并且保留了用户正在查看的当前页面。
与接受的答案相反,实际上有一个取消事件,就像编辑事件一样。
$("#grid").kendoGrid({
...
edit: function(e) {
alert("edit")
},
cancel: function(e) {
alert("cancel");
},
...
});
试试这个,
$("#grid").kendoGrid({
columns: [
{ field: "name" },
{ field: "age" }
],
dataSource: [
{ name: "Jane Doe", age: 30 },
{ name: "John Doe", age: 33 }
],
dataBound: function(e) {
$("#grid").on("mousedown", ".k-grid-cancel-changes", function (e) {
//custom logic
});
}
});
在 dataBound 中,剑道网格工具栏取消按钮的连线单击事件。它会起作用。