0

問題の説明のために私自身と同様の単純化されたコードがあります:私はこのモデルクラスを持っていました:

public class Parent
{
    public Guid Id { get; set; }
    public string Something { get; set; }
    public Child[] Children { get; set; }
}

public class Child
{
    public string Code { get; set; }
    public string Title { get; set; }
}

ビューがあります:

@(Html.Kendo().Grid<Stihl.UnfairCompetitionWeb.DataLayer.Models.Parent>(Model.Parents)
    .Name("grid")
    .Columns(columns => {
        columns.Bound(e => e.Something);
        foreach (Stihl.UnfairCompetitionWeb.DataLayer.Models.LanguageModel l in Model.Languages)
        {
            columns.Bound(e => e.Children[Model.Languages.IndexOf(l)].Title).Title(l.Code).HeaderHtmlAttributes(new { data_language = l.Code });
        }

        columns.Command(command => command.Destroy());
    })
    .ToolBar(toolbar => {
            toolbar.Create();
            toolbar.Save();
        })
    .Editable(editable => editable.Mode(GridEditMode.InCell))
    .Pageable((p => p.PageSizes(new[] { 5, 10, 20, 50 })))
    .Sortable()
    .DataSource(dataSource => dataSource
        .Ajax()
        .Batch(true)
        .ServerOperation(true)
        .PageSize(10)
        .Events(events => events.Error("error_handler"))
        .Model(model => model.Id(e => e.Id))
        .Read(read => read.Action("ProductCategories_Read", "Admin"))
        .Create(create => create.Action("ProductCategories_Create", "Admin"))
        .Update(update => update.Action("ProductCategories_Update", "Admin"))
        .Destroy(destroy => destroy.Action("ProductCategories_Delete", "Admin"))
    )
)

したがって、コントローラーの Crud メソッドでは、Aggregates、Filters、Groups、Sorts などの DataSourceRequest プロパティは null です。

JFI - 他のケースでも同じ方法でグリッドを使用していますが、正しく動作します。

私の意見では、この場合の問題点は、グリッド列が配列の項目にバインドされていることです。モデルクラスのいくつかの単純なプロパティではありません。それにはさらに問題がありましたが、私はまだ解決していません。

DataSourceRequest の問題は最後です。それがなければ、ページング、ソート、フィルタリング、およびその他の機能を実装できません。これは、通常、ビューの 1 つのキーワードとコントローラーの単純なコードについてです。

クライアント側でどのように動作しますか?

PS: コントローラ メソッド。ただし、コントローラーでは、着信 DataSourceRequest に記述された null データが含まれています。

public ActionResult Parents_Read([DataSourceRequest] DataSourceRequest request)
{
    return Json(entities.Parents.ToModel(entities.Languages.ActiveLangauges()).ToDataSourceResult(request));
}
4

2 に答える 2

0

私は同じ問題に直面しました。kendo.aspnetmvc.min.js を追加してこの問題を解決しました

于 2015-12-09T09:32:27.733 に答える