17

我正在使用edit剑道网格上的事件来显示几个隐藏的列。save然后我会在活动中再次隐藏它们。

我遇到的问题是似乎没有取消编辑模式的事件,因此如果用户单击取消,该列就会搞砸。

是否有未记录的取消事件或我需要找到解决方法?

4

4 回答 4

20

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

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

编辑:从某个时间开始,网格有“取消”事件,可以用来代替上述解决方案:

于 2013-01-24T11:36:36.490 回答
17

我一直在寻找同一个问题的答案,但这对我不起作用。我有一个场景,在我的控制器中验证我的网格中的新记录和编辑记录,并将错误消息添加到 ModelState 的 ModelError 集合中。我已经连接了网格的数据源错误事件,然后在警报中显示错误消息,然后添加以下内容以重置更改:

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

这对我来说是一个很好的解决方案,因为我正在使用分页并且用户正在查看的当前页面被保留。

于 2013-09-27T09:26:55.437 回答
10

与接受的答案相反,实际上有一个取消事件,就像编辑事件一样。

$("#grid").kendoGrid({
    ...
    edit: function(e) {
        alert("edit")
    },
    cancel: function(e) {
        alert("cancel");
    },
    ...
});
于 2014-11-25T17:55:50.467 回答
0

试试这个,

$("#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 中,为剑道网格工具栏取消按钮连接单击事件。它会起作用的。

于 2018-07-26T10:45:04.767 回答