2013-06-19 6 views
1

Используя mvc, у меня есть контроллер, который выполняет вызов веб-службы для извлечения данных и заполнения сетки каждый раз, когда я обновляю текущую страницу.Как постоянно обновлять представление с помощью ajax из webservice

Возможно ли использовать 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

Старая тема, но я хотел добавить, что мы успешно реализовали SignalR с компонентами Kendo, и он отлично работает :)

Смежные вопросы