У меня есть сетка кендо в веб-приложении 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))
Но это не работает. Размер столбцов не изменяется. Я пробовал это на нескольких других кендо-гридах, которые НЕ агрегируют данные, и они прекрасно работают. Поэтому я должен предположить, что агрегирование данных усложняет уравнение.
Кто-нибудь знает, в чем хитрость?
Нет, значок ручки изменения размера НЕ отображается. Все остальные сетки, к которым я применил .Resizable(resize => resize.Columns(true))
, используют свойство .Width
и могут прекрасно изменять размер.
ОБНОВЛЕНИЕ (06.07.2021): если я удалю свойство .Group() из сетки, размер столбцов изменится, но заголовки больше не совпадают со столбцами, а промежуточные итоги исчезнут.
После работы со службой поддержки Progress я обнаружил, что Javascript и CSS скрывают определенные участки сетки, такие как строка группировки, а затем корректируют остальную часть сетки, чтобы компенсировать это. Это было причиной моей проблемы.
Ну, вам обязательно нужно установить
.Resizable(resize => resize.Columns(true))
в сетке. Отображается ли значок ручки изменения размера при наведении курсора на границу между столбцами? Можно попробовать удалить свойство.Width
из столбца и посмотреть, изменит ли это что-нибудь.