更改 Kendo 网格模型并手动保存

Changing Kendo Grid model and manually saving it

我想手动保存 Kendo Grid 的项目,但在此之前我应该​​可以更改模型。

据我所知有两种方法可以更改模型: 1. 在 OnEdit 事件中。 2. 在 OnSave 事件中。

在插入新行之前所需的信息不可用,因此我无法使用 OnEdit 事件。

另一方面,要保存该项目也有两种方法:1. 触发DataSourcesync 方法。 2. 触发网格的 saveChanges 方法,它似乎只是触发 sync 方法。不幸的是,这些事件中的 none 触发了 OnSave 事件!! saveChanges 方法触发 saveChanges 事件,但在此事件中无法访问模型。

欢迎提出任何建议和解决方法!

OnGridEdit - 当用户点击编辑时触发,所以如果你想在用户点击编辑时显示一些默认值,你可以在这里做。您不必调用保存更改,因为网格尚未绑定。

OnGridSave - 当用户点击更新时触发一个选项,你可以做

e.preventDefault(); e.model.field = "changevalue"; grid.savechanges;

第二个选项,当用户点击更新时,它会调用控制器方法,您可以在其中修改模型并发送更新后的修改模型

OnRequestEnd - 如果你不想在服务器上更新,只想把修改后的值显示给用户,你可以在这个事件中做。在这里你会得到所有的记录,你必须遍历并更新值

  if (e.type == "update") {}

原来还有第三种方法可以保存Kendo网格:SaveRow。此方法将触发 Gird 的 save 事件,就像用户单击保存按钮时一样。

$('gridId').data().kendoGrid.saveRows();

所以使用上面的代码,我可以保持我当前的处理程序不变,我可以在 save 事件处理程序中更改模型......