1

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));
}
4

2 に答える 2

1

次のように、JavaScript を使用して Grid 人口メソッドを呼び出すことができます。

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

その後、そのメソッドを繰り返し呼び出してグリッドを更新できます。

于 2013-06-19T14:09:00.260 に答える
0

古いトピックですが、Kendo コンポーネントを使用して SignalR を正常に実装し、完全に機能するという事実を追加したいと思います:)

于 2013-08-05T08:32:11.023 に答える