我对 KendoUI 网格控件中的事件有疑问。我在网格初始化后分配了“saveChanges”事件。我使用弹出窗口进行数据编辑。我想当用户按下“保存”按钮时触发事件“saveChanges”。不幸的是该事件没有被触发。我不知道问题出在哪里,而且其他事件也有效。网格在 MVC 帮助程序中初始化。事件在 JavaScript 中分配。
这是我正在使用的 JavaScript 代码:
function bindGridEvents() {
var that = this;
//kendoGrid is an abbreviation of: $("#grid").data("kendoGrid")
kendoGrid.bind("dataBound", function () { }); // works
kendoGrid.bind("edit", function (event) { }); // works
kendoGrid.dataSource.bind("error", function (event) {}); // works
kendoGrid.bind("saveChanges", function (event) { console.log("This event is not fired!"); });
kendoGrid.bind("save", function (event) { }); // works
}
我已经花了很多时间自己寻找解决方案,但没有成功。我将不胜感激任何帮助。
编辑:
我已经找到问题所在了。文档说:
saveChanges event is fired when the user clicks the "save" command button.
但是当弹出窗口显示带有标签“保存”的命令时,其类型为“更新”。这就是它在编辑模式下不起作用的原因。它仅适用于工具栏。一开始并不明显,文档也没有说太多,所以要注意这一点。
最佳答案
如果没有看到代码,我无法确定。我相信,如果您不进行任何更改,该事件就不会触发。对我有用的好例子是 here 。如果您不通过网格功能处理实际的数据项编辑,请确保将该项目标记为“脏”。最好将您的代码发布为 JsFiddle 或 JSBin。
关于javascript - KendoUI 网格不会触发 saveChanges 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20397409/