更改Kendo Grid模型并手动保存

时间:2016-01-31 09:04:34

标签: javascript jquery kendo-ui kendo-grid kendo-asp.net-mvc

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

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

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

另一方面,为了保存该项目,还有两种方法:1。sync方法DataSource。 2.触发Grid的saveChanges方法,它似乎只是触发sync方法。不幸的是,这些事件都没有引发OnSave事件!! saveChanges方法会触发saveChanges事件,但在此事件中无法访问模型。

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

2 个答案:

答案 0 :(得分:0)

OnGridEdit - 当用户点击编辑时触发,因此如果您想在用户点击编辑时显示一些默认值,您可以在此处执行此操作。您不必调用保存更改,因为网格尚未绑定。

当用户点击更新时会触发OnGridSave -one选项,您可以

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

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

OnRequestEnd - 如果您不想在服务器上更新,只想向用户显示修改后的值,您可以在此事件中执行此操作。在这里你将获得所有记录,你必须循环并更新值

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

答案 1 :(得分:0)

事实证明,实际上还有第三种方法来保存剑道网格:SaveRow。此方法将触发Gird的save事件,就像用户单击“保存”按钮一样。

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

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