#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 скрывают определенные разделы сетки, такие как строка группировки, а затем корректируют остальную часть сетки для компенсации. Это было причиной моей проблемы.