Изменение размера столбцов в сетке Kendo при агрегировании данных

#asp.net-mvc #kendo-ui #resize #kendo-grid #aggregate

#asp.net-mvc #kendo-пользовательский интерфейс #изменение размера #kendo-grid #агрегировать

Вопрос:

У меня есть сетка kendo в веб-приложении MVC, которая объединяет данные.

 @(Html.Kendo().Grid<Custodias.Models.TeamSummaryModel>()
    .Name("grid")
    .Columns(columns =>
    {
        columns.Bound(p => p.EmpType).Width(70).Filterable(false);
        columns.Bound(p => p.FirmName).Width(150).Filterable(false);
        columns.Bound(p => p.UserName).Width(120).Filterable(false);
        columns.Bound(p => p.ProjectNbr).Width(70).Filterable(false);
        columns.Bound(p => p.ProjectFullName).Width(150).Filterable(false);
        columns.Bound(p => p.SumDuration).ClientTemplate("#=SumDuration==null? '': kendo.toString(SumDuration, 'n') #").Width(120).Filterable(false).ClientGroupFooterTemplate("Total: #=kendo.toString(sum, 'n') #").ClientFooterTemplate("Total: #=kendo.toString(sum, 'n') #");
    })
    .Pageable()
    .Sortable()
    .Scrollable()
    .Events(events => events.DataBound("dataBound"))
    .HtmlAttributes(new { style = "height:550px;" })
    .DataSource(dataSource => dataSource
        .Ajax()
        .PageSize(20)
        .Sort(sort => sort.Add("FirmName").Ascending())
         .Aggregates(aggregates =>
         {
             aggregates.Add(p => p.SumDuration).Sum();
         })
        .Events(events =>
        {
            events.RequestEnd("onRequestEnd");
        })
        .Group(groups => groups.AddDescending(p => p.EmpType))
        .Read(read => read.Action("BindTeamSummaryModel", "TeamSummary").Data("TeamSummaryFilterModel"))
    )
)
 

Я хочу, чтобы столбцы можно было изменять, и я знаю, что этого можно достичь, просто установив:

 .Resizable(resize => resize.Columns(true))
 

Но это не работает. Столбцы не могут быть изменены. Я пробовал это на нескольких других сетках Kendo, которые НЕ агрегируют данные, и они работают просто отлично. Поэтому я должен предположить, что агрегирование данных добавляет уровень сложности к уравнению.

Кто-нибудь знает, в чем хитрость?

Комментарии:

1. Ну, вам определенно нужно .Resizable(resize => resize.Columns(true)) установить в сетке. Отображается ли значок дескриптора изменения размера при наведении курсора мыши на границу между столбцами? Возможно, попробуйте удалить .Width свойство из столбца и посмотреть, изменится ли это что-нибудь.

2. Нет, значок дескриптора изменения размера НЕ отображается. Все остальные сетки, к которым я применял .Resizable(resize => resize.Columns(true)) , используют это .Width свойство и могут изменять размер просто отлично.

3. ОБНОВЛЕНИЕ (06.07.2021): если я удалю . Свойство Group() из сетки изменяет размер столбцов, но заголовки больше не совпадают со столбцами, а промежуточные итоги исчезают.

Ответ №1:

После работы с командой поддержки Progress я обнаружил, что Javascript и CSS скрывают определенные разделы сетки, такие как строка группировки, а затем корректируют остальную часть сетки для компенсации. Это было причиной моей проблемы.