2013-05-09 15 views
15

Próbuję odświeżyć sieć Kendo UI, ale jeszcze się nie udało. Czy ktokolwiek mógłby doradzić, co przeoczyłem lub co zrobiłem źle?Jak odświeżyć siatkę Kendo UI

Mam następujący kod:

.cshtml:

$('#btnRefresh').click(function (e){ 

      $.ajax({ 
       type: 'POST', 
       url: "@(Url.Content("~/Administration/RefreshAll/"))", 

       success: function() { 
        $("#Product").data("kendoGrid").dataSource.read(); 
        $('#Product').data('kendoGrid').refresh(); 
        //grid.refresh(); 
        location.reload(true); 
       }, 
       error: function(){ 
        $("#btnRefresh").removeAttr('disabled'); 
       } 
      }); 


     }); 

Kontroler:

public ActionResult RefreshAll([DataSourceRequest] DataSourceRequest request) 
     { 
      db.ProcessAll(); 
      Response.Cache.SetCacheability(HttpCacheability.NoCache); 
      return View(); 
     } 

Odpowiedz

35

skrypt powinny być

$('#btnRefresh').click(function (e){ 
     var grid = $("#Product").data("kendoGrid"); 
       grid.dataSource.page(1); 
       grid.dataSource.read(); 
     }); 

w kontrolerze dodać odwołania do

  • using Kendo.Mvc.UI;
  • using Kendo.Mvc.Extensions;

Twój ActionResult powinny być

public ActionResult RefreshAll([DataSourceRequest] DataSourceRequest request) 
     { 
      //assuming db.ProcessAll() will return a list object 
      return Json(db.ProcessAll().ToDataSourceResult(request)); 
     } 
+0

public void ProcessAll(), więc nie mogłem wrócić jako JSON – Spidey

+0

Musisz przekazać obiekt listy do modelu. – HaBo

+0

ok. dzięki, spróbuję, że – Spidey