在聚合数据时使 Kendo 网格中的列可调整大小
Make columns in Kendo Grid resizable when data is aggregated
我在聚合数据的 MVC 网络应用程序中有一个 kendo 网格。
@(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 不聚合数据的网格上试过了,它们工作得很好。因此,我不得不假设聚合数据会增加等式的复杂程度。
有人知道这个技巧是什么吗?
在与 Progress 的支持团队合作后,我发现 Javascript 和 CSS 隐藏了网格的某些部分,例如分组行,然后调整网格的其余部分以进行补偿.这就是导致我出现问题的原因。
我在聚合数据的 MVC 网络应用程序中有一个 kendo 网格。
@(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 不聚合数据的网格上试过了,它们工作得很好。因此,我不得不假设聚合数据会增加等式的复杂程度。
有人知道这个技巧是什么吗?
在与 Progress 的支持团队合作后,我发现 Javascript 和 CSS 隐藏了网格的某些部分,例如分组行,然后调整网格的其余部分以进行补偿.这就是导致我出现问题的原因。