Показать 2 дочерние сетки на одном уровне в одной родительской сетке в ASP.NET Kendo MVC - PullRequest
0 голосов
/ 26 сентября 2019

Может ли кто-нибудь предоставить мне аналогичное решение с использованием kendo MVC, как показано ниже:

Создание 2 дочерних сеток кендо на одном уровне

Спасибо!

1 Ответ

0 голосов
/ 26 сентября 2019

Используйте функции шаблона клиента.Итак, на вашей сетке:

@(Html.Kendo().Grid<Kendo.Mvc.Examples.Models.EmployeeViewModel>()
    .Name("grid")
    .Columns(columns =>
    {
        columns.Bound(e => e.FirstName).Width(130);
        columns.Bound(e => e.LastName).Width(130);
        columns.Bound(e => e.Country).Width(130);
        columns.Bound(e => e.City).Width(110);
        columns.Bound(e => e.Title);

    })               
    .Sortable()
    .Pageable()
    .Scrollable()
    >> refer to the template
    .ClientDetailTemplateId("template")
... etc

Затем создайте шаблон с 2 сетками:

<script id="template" type="text/kendo-tmpl">
    @(Html.Kendo().Grid<Kendo.Mvc.Examples.Models.OrderViewModel>()
            .Name("grid_#=EmployeeID#") // template expression, to be evaluated in the master context
            .Columns(columns =>
            {
                columns.Bound(o => o.OrderID).Width(110);
                columns.Bound(o => o.ShipCountry).Width(150);
                columns.Bound(o => o.ShipAddress).ClientTemplate("\\#= ShipAddress \\#"); // escaped template expression, to be evaluated in the child/detail context
                columns.Bound(o => o.ShipName).Width(300);
            })
            .DataSource(dataSource => dataSource
                .Ajax()
                .PageSize(10)
                .Read(read => read.Action("HierarchyBinding_Orders", "Grid", new { employeeID = "#=EmployeeID#" }))
            )
            .Pageable()
            .Sortable()
            .ToClientTemplate()
    )

    @(Html.Kendo().Grid<Kendo.Mvc.Examples.Models.OrderViewModel>()
        .Name("grid2_#=EmployeeID#") // template expression, to be evaluated in the master context
        .Columns(columns =>
        {
            columns.Bound(o => o.OrderID).Width(110);
            columns.Bound(o => o.ShipCountry).Width(150);
            columns.Bound(o => o.ShipAddress).ClientTemplate("\\#= ShipAddress \\#"); // escaped template expression, to be evaluated in the child/detail context
            columns.Bound(o => o.ShipName).Width(300);
        })
        .DataSource(dataSource => dataSource
            .Ajax()
            .PageSize(10)
            .Read(read => read.Action("HierarchyBinding_Orders", "Grid", new { employeeID = "#=EmployeeID#" }))
        )
        .Pageable()
        .Sortable()
        .ToClientTemplate()
)
</script>

Важно .ToClientTemplate().Также необходимо иметь разные имена сетки для каждой строки.При желании вы можете смешать другой HTML для организации.Смотри здесь .

...