Thursday, April 28, 2016

How to fix grid from not refreshing after create or update (add/edit record)

Solution is to refresh the grid using javascript on the data source requestend event.

Here's how:

Add this Javascript:
  function OnRequestEnd(e) {  
     if (e.type === "update" || e.type === "create") {  
       var grid = $('#myprojectsgv').data('kendoGrid');  
       grid.dataSource.read();  
     }  
   }  

Then in the razor code for the grid:

  .DataSource(data => data.Ajax()  
                       .Model(model =>  
                       {  
                         model.Id(record => record.projectID);  
                       })  
                       .Sort(m => m.Add("projectID").Descending())  
               //.ServerOperation(false)  
               .Read(read => read.Action("GetMyProjects", "Projects").Data("getUserID"))  
             .Create(create => create.Action("CreateProject", "Projects"))  
             .Update(update => update.Action("UpdateProject", "Projects"))  
             .Destroy(delete => delete.Action("DeleteProject", "Projects"))  
             .PageSize(10)  
             .Batch(false)  
             .Events(e =>  
             {  
             e.Error(@<text>  
     function(e) {  
     griderror(e,"myprojectsgv", "My Projects");  
     }  
             </text>);  
               e.RequestEnd("OnRequestEnd");  
             })  
           )  

No comments:

Post a Comment