Hi. I'm trying to use the grid to display some data which a user is supposed to change. The problem is that so far I have been unsuccessful in making the grid update/edit or delete, nothing happens when I click the "Save" button. Or when I press enter. It just doesn't hit the controller when I set a break point. If I create or read, it works fine.
To create the project I did the following
- Started a new MVC project though the basic asp.net web wizard
- Converted to telerik application to UI for ASP.net MVC
- Updated all scripts to their newest version
- Enabled entity framework migrations with automatic migrations.
My versions are:
* jQuery 1.10.2
* KendoUI 2014.1.415
* Bootstrap 3.0.0.0
* MVC 5.1.0.0
ManageWorkPlacements.cshtml
01.@(Html.Kendo().Grid<WorkPlacementModel>()02. .Name("Grid")03. .Columns(columns =>04. {05. columns.Bound(p => p.Name);06. columns.Bound(p => p.CvrNumber);07. columns.Command(command => command.Destroy()).Width(110);08. })09. .ToolBar(toolbar =>10. {11. toolbar.Create();12. toolbar.Save();13. })14. .Editable(editable => editable.Mode(GridEditMode.InCell))15. .Pageable()16. .Navigatable()17. .Sortable()18. .Scrollable()19. .DataSource(dataSource => dataSource20. .Ajax()21. .Batch(true)22. .PageSize(20)23. .ServerOperation(false)24. .Events(events => events.Error("error_handler"))25. .Model(model => model.Id(p => p.Id))26. .Create("WorkPlacement_Create", "WorkPlacement")27. .Read("WorkPlacement_Read", "WorkPlacement")28. .Update("WorkPlacement_Update", "WorkPlacement")29. .Destroy("WorkPlacement_Destroy", "WorkPlacement")30. )31. )32. <script type="text/javascript">33. function error_handler(e) {34. if (e.errors) {35. var message = "Errors:\n";36. $.each(e.errors, function (key, value) {37. if ('errors' in value) {38. $.each(value.errors, function () {39. message += this + "\n";40. });41. }42. });43. alert(message);44. }45. }46. </script>WorkPlacementController.cs
01.using System;02.using System.Collections.Generic;03.using System.Linq;04.using System.Web;05.using System.Web.Mvc;06.using Kendo.Mvc.Extensions;07.using Kendo.Mvc.UI;08.using RegistreringMVC.Migrations;09.using RegistreringMVC.Models;10.using RegistreringMVC.Services;11. 12.namespace RegistreringMVC.Controllers13.{14. public class WorkPlacementController : Controller15. {16. private WorkPlaceService workPlacementService;17. 18. public WorkPlacementController()19. {20. workPlacementService = new WorkPlaceService(new RegistreringEntities());21. }22. 23. public ActionResult WorkPlacement_Read([DataSourceRequest] DataSourceRequest request)24. {25. return Json(workPlacementService.Read().ToDataSourceResult(request));26. }27. 28. [AcceptVerbs(HttpVerbs.Post)]29. public ActionResult WorkPlacement_Create([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<WorkPlacementModel> workPlacements)30. {31. var results = new List<WorkPlacementModel>();32. 33. if (workPlacements != null && ModelState.IsValid)34. {35. foreach (var workPlacement in workPlacements)36. {37. workPlacementService.Create(workPlacement);38. }39. }40. 41. return Json(results.ToDataSourceResult(request, ModelState));42. }43. 44. [AcceptVerbs(HttpVerbs.Post)]45. public ActionResult WorkPlacement_Update([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<WorkPlacementModel> workPlacements)46. {47. if (workPlacements != null && ModelState.IsValid)48. {49. foreach (var workPlacement in workPlacements)50. {51. workPlacementService.Update(workPlacement);52. }53. }54. 55. return Json(workPlacements.ToDataSourceResult(request, ModelState));56. }57. 58. [AcceptVerbs(HttpVerbs.Post)]59. public ActionResult WorkPlacement_Destroy([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<WorkPlacementModel> workPlacements)60. {61. if (workPlacements.Any())62. {63. foreach (var workPlacement in workPlacements)64. {65. workPlacementService.Destroy(workPlacement);66. }67. }68. 69. return Json(workPlacements.ToDataSourceResult(request, ModelState));70. }71. }72.}The code is taken almost directly from the offline samle (just to make it work). But still it doesn't. I tried remaking the whole project, in case I had changed something without thinking about it. But this does not help either. If you require any further code, please reply and i'll add it.
Thank you
Daniel