我想手动保存Kendo Grid的项目,但在此之前我应该可以更改模型。
据我所知,有两种方法可以更改模型:1。在OnEdit
事件中。 2.在OnSave
事件中。
在插入新行之前,所需信息不可用,因此我无法使用OnEdit
事件。
另一方面,为了保存该项目,还有两种方法:1。sync
方法DataSource
。 2.触发Grid的saveChanges
方法,它似乎只是触发sync
方法。不幸的是,这些事件都没有引发OnSave
事件!! saveChanges
方法会触发saveChanges
事件,但在此事件中无法访问模型。
欢迎任何建议和解决方法!
答案 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
事件处理程序中更改模型....