2013-06-19 58 views
1

使用MVC更新觀點,我有一個控制器,它確實調用web服務來獲取數據和每一個我刷新當前頁面時填充網格。如何時間可持續使用Ajax Web服務從

是否可以使用Ajax來撥打電話到該服務,持續,導致從業務數據的活飼料?

這是我的看法是如何設置:

@model FleetMonitorModel 

<div class="span12"> 
    <legend>Fleet Monitor</legend> 
     <div> 
     @(Html.Kendo().Grid<FleetMonitorModel>() 
       .Name("Grid") 
       .DataSource(ds => ds 
        .Ajax() 
        .Read(read => read.Action("Get", "FleetMonitor")) 
      ) 
       .HtmlAttributes(new { style = "height:auto;" }) 
       .Columns(columns => 
        { 
         columns.Template(p => { }).ClientTemplate(" ").Width(310); 
         columns.Template(p => { }).ClientTemplate(" ").Width(250); 
         columns.Template(p => { }).ClientTemplate(" ").Width(150); 
         columns.Template(p => { }).ClientTemplate(" "); 
         columns.Template(p => { }).ClientTemplate(" ").Width(80); 
        }) 
       .ClientRowTemplate(Html.Partial("_ClientRowTemplate", Model).ToHtmlString()) 
       .Pageable() 
       .Sortable()) 
    </div> 
</div> 

,這裏是我的控制器操作:

private FleetMonitorModel Model { get; set; } 

... 

public ActionResult Get([DataSourceRequest] DataSourceRequest request) 
{ 
    UnitContract[] listOfUnitsFromService = Client.GetListOfUnits(true); 

    Model = new FleetMonitorModel() 
       { 
        UnitDetails = GenerateUnitDetails(listsOfUnitsFromService.ToList()) 
       }; 

    return Json(Model.UnitDetails.ToDataSourceResult(request)); 
} 

回答

1

你可以叫網格人口方法通過JavaScript這樣的:

var grid = $('#Grid').data('kendoGrid');  
grid.dataSource.read(); 

之後,你可以多次調用該方法來更新電網。

0

舊主題,但我想補充一點,我們已經成功實施了使用Kendo組件的SignalR,並且它完美地工作:)