Как скрыть имя группы в сетке кендо, чтобы оно не отображалось в каждой строке? - PullRequest
0 голосов
/ 07 мая 2019

У меня есть сетка кендо, которая отображает сгруппированные данные.

Каждая строка в этой сетке отображает имя группы и данные в этой группе:

enter image description here

Я не хочу отображать название раздела / группы в каждой строке. и вместо Section: Group Name я просто хочу отобразить Group Name

Итак, вместо Section: Incoming Report Totals я хочу отобразить Incoming Report Totals

Это мое определение сетки:

@(Html.Kendo().Grid(Model.ReportPropertyEntityList)
                        .Name("ReportPropertyGrid")
                        .Columns
                        (
                            columns =>
                            {
                                columns.Bound(c => c.ReportGroup).Title("Section");
                                columns.Bound(c => c.PropertyName).Title("Report Name");
                            }
                        )
                        .Scrollable(s => s.Height("auto").Virtual(true).Enabled(true))
                        .Selectable(stb => stb.Mode(GridSelectionMode.Single))
                        .Reorderable(reorderable => reorderable.Columns(true))
                        .Resizable(r => r.Columns(true))
                        .Sortable()
                        .ColumnMenu(b => b.Enabled(true))
                        .Pageable(p => p
                                .Refresh(true)
                                .PageSizes(false)
                        )
                          .Filterable(ftb => ftb.Mode(GridFilterMode.Menu)
                            .Extra(false)
                            .Operators(operators => operators
                                .ForString(str => str.Clear()
                                    .Contains("Contains")
                                    .IsEqualTo("EqualTo")
                                    .IsNotEqualTo("NotEqualTo")
                                    .IsEmpty("Empty"))))
                          .DataSource(ds => ds
                               .Ajax()
                               .Group(g => g.Add(p => p.ReportGroup))
                               .PageSize(5)
                               .Events(e => e.Error("CheckError"))
                              .Read(read => read.Action("GetReportPropertyData", "ReportProperty", new {reportID = ViewBag.ReportID, ticketID = ViewBag.TicketID }))
                          )

)

Как я могу сделать что-то подобное?

1 Ответ

0 голосов
/ 07 мая 2019

Попробуйте это:

columns =>
                            {
                                columns.Bound(c => c.ReportGroup).Title("Section"). 
                                .ClientGroupHeaderTemplate("#=value#");
                                columns.Bound(c => c.PropertyName).Title("Report Name");
                            }

Вы можете скрыть столбец группировки в dataBound event.add таблицы, следующий за сеткой:

 .Events(events => events
                          .DataBound("onDataBound")


                      )

и добавить следующий скрипт на страницу:

<script>
    function onDataBound(arg) {
        console.log("Grid data bound");
        var grouptedColumns = $(".k-group-indicator").attr("data-field");
        var grid = $("#ReportPropertyGrid").data("kendoGrid");
        if (grouptedColumns) {
            grid.hideColumn(grouptedColumns);
        } else {
            var columns = grid.getOptions().columns;
            columns.forEach(function (me) {
                if (me.hidden !== undefined && me.hidden === true) {
                    grid.showColumn(me.field);
                }
           });
        }
    }

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