When my MVC razor Kendo Grid is in:
GridEditMode.InCelland I click on "cancel changes"
or in:
GridEditMode.InLineand click on "cancel" Changes,
The lines are dropped from the grid..
Apparently this has to do with the fact that I load my grid on the client ajax call (generated by a treeview). It seems as if the grid is treating the lines as new because they were loaded at a later time then when the grid was created.
What can I do to avoid this problematic behaivior? I have read many users have similar issues but no straightforward solution.
Here is my JavaScript:
01.function onSelect(e) {02. var node = e.node;03. var nodedata = $("#tvPH").data('kendoTreeView').dataItem(node);04. //Fill the Proc Equip Grid05. if (nodedata.nodeType == "pls") {06. $.ajax({07. //url: "/PlantHierArchy/GetProcEquip?plsID=" + nodedata.id,08. url: "/PlantHierArchy/ForeignKeyColumn_Read?plsID=" + nodedata.id,09. dataType: "json",10. cache: false,11. type: 'GET',12. success:13. function (result) {14. $("#lblPSU").text('Proc. Equipment Managment for Plant Sub-Unit: ' + node.textContent);15. var procGrid = $("#ProcEqGrid").data("kendoGrid");16. procGrid.dataSource.data(result.Data);17. 18. },19. error: function (jqXHR, textStatus) {20. alert("Request failed: " + textStatus);21. }22. });23. }24. }and here is my Grid:
01.@(Html.Kendo().Grid<PMTWebReconcile.Models.ProcEquipViewModel>()02. .Name("ProcEqGrid")03. //.HtmlAttributes(new { style = "height: 480px; margin-left: 260px" })04. .Columns(columns =>05. {06. columns.Bound(P => P.peqID).Width(20);07. columns.Bound(P => P.peqName).Width(120);08. columns.Bound(P => P.peqTag).Width(120);09. columns.Bound(P => P.peqDescription).Width(200);10. //columns.Bound(P => P.eqtID).Width(30);11. columns.ForeignKey(p => p.eqtID, (System.Collections.IEnumerable)ViewData["EqptTypes"], "TypeID", "Type").Title("Eqpt Type").Width(120);12. 13. columns.Bound(P => P.eqsID1).Width(30);14. columns.Bound(P => P.eqsID2).Width(30);15. columns.Bound(P => P.eqsID3).Width(30);16. columns.Bound(P => P.peqActive).Width(30);17. //columns.Command(commands =>18. //{19. // commands.Edit();20. // //commands.Delete().ButtonType(GridButtonType.Image);21. 22. //}).Width(100);23. 24. })25. .ToolBar(toolbar => { toolbar.Create(); toolbar.Save(); })26. .HtmlAttributes(new { style = "veritcal-align:top" }) 27. //.Editable(editable => editable.Mode(GridEditMode.InLine)) // Use inline editing mode.28. .Editable(editable => editable.Mode(GridEditMode.InCell))29. .DataSource(dataSource =>30. dataSource31. .Ajax()32. .Batch(true)33. .Model(model =>34. {35. model.Id(P => P.peqID); // Specify the property which is the unique identifier of the model.36. model.Field(P => P.peqID).Editable(false); // Make the ProductID property not editable.37. model.Field(P => P.Type).DefaultValue(new PMTWebReconcile.Models.EquipTypeViewModel());38. })39. .Create(create => create.Action("ForeignKeyColumn_Create", "PlantHierArchy")) // Action invoked when the user saves a new data item.40. // .Read(read => read.Action("ForeignKeyColumn_Read", "PlantHierArchy", new { plsID = (subUnitID) }))41. .Update(update => update.Action("ForeignKeyColumn_Update", "PlantHierArchy")) // Action invoked when the user saves an updated data item.42. )43. .Pageable()44. .Sortable()45. //.ClientDetailTemplateId46. )*
