剑道网格取消编辑事件
Posted
技术标签:
【中文标题】剑道网格取消编辑事件【英文标题】:Kendo Grid cancel edit event 【发布时间】:2013-01-08 02:22:26 【问题描述】:我在剑道网格上使用edit
事件来显示几个隐藏的列。然后,我将在 save
事件中再次隐藏它们。
我遇到的问题是似乎没有取消编辑模式的事件,所以如果用户单击取消,列就会搞砸。
是否存在未记录的取消事件或者我需要找到解决方法?
【问题讨论】:
【参考方案1】:基本上没有这样的“取消”事件,但是您可以在网格的еdit 事件中的“取消”按钮上附加点击事件。请查看以下示例:
function onEdit(e)
e.container.find(".k-grid-cancel").bind("click", function ()
//your code here
)
编辑:从某个时间开始,Grid 有“取消”事件,可以使用它来代替上述解决方案:
cancel event【讨论】:
这几乎对我们有用,但是课程是.k-grid-cancel-changes
而不是 .k-grid-cancel
。【参考方案2】:
我一直在寻找相同问题的答案,但这对我不起作用。我有一个场景,在我的控制器中验证我的网格中的新记录和编辑记录,并将错误消息添加到 ModelState 的 ModelError 集合中。我已经连接了网格的数据源错误事件,然后在警报中显示错误消息,然后添加以下内容以重置更改:
$('#MyGrid').data("kendoGrid").cancelChanges();
这对我来说是一个很好的解决方案,因为我正在使用分页并且用户正在查看的当前页面被保留。
【讨论】:
在错误事件中,您也可以只使用 this 关键字来取消更改,即。 this.CancelChanges() 而不是指定整个路径。 是否可以对特定列使用 cancelChanges()? 我注意到cancelChanges()
正在使我的列表中的所有项目都重复(直到我刷新页面)。当我将正在添加/编辑的特定项目添加到方法中时,这种情况停止发生:cancelChanges(e.model)
【参考方案3】:
与接受的答案状态相反实际上有一个 cancel event 就像编辑事件一样。
$("#grid").kendoGrid(
...
edit: function(e)
alert("edit")
,
cancel: function(e)
alert("cancel");
,
...
);
【讨论】:
如果您使用“incell”编辑模式,取消事件不会触发。文档说它只触发“内联”或“弹出”编辑模式。【参考方案4】:试试这个,
$("#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 中,为剑道网格工具栏取消按钮连接单击事件。它会起作用的。
【讨论】:
以上是关于剑道网格取消编辑事件的主要内容,如果未能解决你的问题,请参考以下文章