mvc を使用して、現在のページを更新するたびに 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));
}