0

腹立たしい... Kendo Grid で AJAX 読み取りを利用しようとしています。モデルから渡されたデータにかなりの数のバインドを行いました。KendoUI サイトから直接コードをコピーし、自分の要求に合わせて微調整します。

@(Html.Kendo().Grid<FaultReport2.Models.usp_CMC_TopIssues_Result>()
.Name("grid")
.Columns(columns =>
{
    columns.Bound(p => p.description).Title("Description");
    columns.Bound(p => p.responsible).Title("Responsibility");
    columns.Bound(p => p.charged_time).Title("Time");
    columns.Bound(p => p.responsible).Title("Responsible");
    columns.Bound(p => p.root_cause).Title("Root Cause");
    columns.Bound(p => p.counter_measure).Title("Countermeasure");
    columns.Bound(p => p.status).Title("Status");
})
.Pageable()
.DataSource(dataSource => dataSource
    .Ajax()
    .PageSize(10)
    .Read(read => read
        .Action("cmcTopIssues", "FaultInfo", new { equipment_id = Model.area_id, start_date = Model.start_date })
    )
)

)

read.Action() のコントローラ コード:

        public ActionResult cmcTopIssues(int equipment_id, DateTime start_date)
    {
        var db = new Models.FAULTEntities1();

        var top_issues = db.usp_CMC_TopIssues(equipment_id, start_date).ToList();

        return Json(top_issues, JsonRequestBehavior.AllowGet);
    }

動作しません。cmcTopIssues メソッドが呼び出され、top_issues 変数が満たされていることを確認します。グリッドにデータが入力されないだけです。

ローカルに切り替えてモデルを介してデータを渡すと、正常に動作します。

どんな助けでも大歓迎です。

4

1 に答える 1

1

うーん、代わりに Kendo データ ソースの結果を返すように、ここに示すようにアクション メソッドを変更してみてください。

public ActionResult cmcTopIssues([DataSourceRequest]DataSourceRequest request, int equipment_id, DateTime start_date)
{
    var db = new Models.FAULTEntities1();

    var top_issues = db.usp_CMC_TopIssues(equipment_id, start_date).AsEnumerable();

    return Json(top_issues.ToDataSourceResult(request));
}
于 2013-09-19T20:30:40.130 に答える