Свернуть конкретные группы в сетке кендо - PullRequest
1 голос
/ 21 марта 2019

ПРОБЛЕМА: У меня есть сетка кендо, которая имеет 3 слоя группировки.Я хотел бы, чтобы первая группа была расширена, а вторая и третья группы были свернуты.Я пробовал несколько разных способов, но, кажется, не могу сделать эту работу.

@(Html.Kendo().Grid<OfferViewModel>()
                    .Name("grid")
                    .Selectable()
                    .Sortable(sort => sort.AllowUnsort(true).SortMode(GridSortMode.MultipleColumn))
                    .Filterable(filterable => filterable.Extra(false))
                    .Scrollable(s => s.Enabled(true))
                    .Reorderable(reorder => reorder.Columns(true))
                    .Resizable(resize => resize.Columns(true))
                    .Columns(c =>
                    {
                        ...;
                    })
                .Events(e => e.DataBound("OffersDataBound").ExcelExport("OffersExcelExport"))
                .NoRecords(n => n.Template("<br><b><font color='red'>NO RECORDS FOUND</font></b>"))
                .DataSource(dataSource => dataSource
                    .Ajax()
                    .PageSize(20)
                    .ServerOperation(true)
                    .Aggregates(agg =>
                    {
                        agg.Add(a => a.CrewsOffered).Sum();
                        agg.Add(a => a.RequestCrewsRequested).Sum();
                        agg.Add(a => a.ResourceTypeName).Count();
                        agg.Add(a => a.RequestRestorationEventName).Count();
                    })
                    .Group(grp =>
                    {
                        grp.Add(g => g.RequestRestorationEventName);
                        grp.Add(g => g.ResourceTypeName);
                        grp.Add(g => g.RequestSourceShortName);

                    })
                    .Read(read => read.Action("ReadEventOffers", "Offers", new { id = @Model.RequestRestorationEventId }))
                    ...
                )
            )

function OffersDataBound() {
        resizeOffersGrid();
        attachToolTipsToCells('grid');
        collapseAllGroups('grid');
    }

var collapseAllGroups = function (grid) {
        //RequestSourceShortName
        var grid = $("#grid").data("kendoGrid");
        var dataView = grid.dataSource.view();

        for (var i = 0; i < dataView.length; i++) {
            for (var j = 0; j < dataView[i].items.length; j++) {
                var test = dataView[i].items[j];
                for (var k = 0; k < test.items.length; k++) {
                    var test2 = test.items[k]
                    if (test2.field == "RequestSourceShortName") {
                        var uid = test2.uid;

                        //var temp = $("#grid").find("tr[data-uid=" + uid + "]")
                        //debugger
                        //grid.collapseGroup($("#grid").find("tr[data-uid=" + uid + "]").prev("tr.k-grouping-row"));

                        var el = $("#grid"),
                            grid = el.data("kendoGrid"),
                            row = el.find("tbody>tr[data-uid=" + uid + "]");
                        console.log(row); //check if the row is found
                        grid.collapseGroup(row);
                    }
                }
            }
        }
    }

Что мне не хватает?Я должен сделать это в других областях приложения, и у меня могут быть другие группы, которые нужно свернуть.Если у кого-то есть динамическое решение, которое может быть применено к любой группе, это было бы замечательно.Если нет, я не слишком разборчив;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...