如何通过代码在 Telerik RadGrid 上进行 GroupBy
How to GroupBy on Telerik RadGrid from code
我已经看到您可以像这样在 Telerik 的 RadGrid 上执行 GroupByExpressions:
<GroupByExpressions>
<telerik:GridGroupByExpression>
<SelectFields>
<telerik:GridGroupByField FieldAlias="Received" FieldName="Received" FormatString="{0:D}"
HeaderValueSeparator=" from date: "></telerik:GridGroupByField>
</SelectFields>
<GroupByFields>
<telerik:GridGroupByField FieldName="Received" SortOrder="Descending"></telerik:GridGroupByField>
</GroupByFields>
</telerik:GridGroupByExpression>
</GroupByExpressions>
但我正在尝试根据代码对员工进行分组。我试过这个(员工列表有 27 行):
Telerik.Web.UI.GridGroupByExpression groupby = new Telerik.Web.UI.GridGroupByExpression();
groupby.SelectFields.FindByName("EmployeeSoc");
groupby.GroupByFields.FindByName("EmployeeSoc");
gridEmployees.MasterTableView.GroupByExpressions.Add(groupby);
gridEmployees.PageSize = employeelist.Count();
gridEmployees.DataSource = employeelist;
grdDatos.Rebind();
调试期间没有出错,但网格显示 'No records to display.'。
您正在尝试在 RadGrid 中执行 programmatic definition of a group by expression。
我发现有三处可能与您 post 编写的代码不正确。试着看看每一个并找到一个可能的解决方案,或者让你超越当前的错误:
您尚未定义聚合函数。每个分组需要有一个聚合函数(Sum、Avg、Max、Min 等)
您的列表没有正确连接到您的 RadGrid。当我看到错误
No records to display
这意味着无论分组如何,列表中的任何行都不会显示。删除分组代码并让员工在您的 RadGrid 中正确显示而无需分组。
- 您的
SelectField
"EmployeeSoc" 与您的 GroupByField
相同。这样做没问题 - 但通常人们喜欢将一列与另一列分组。 (每个产品的价格,或每个类别的平均年龄等)
请 post 您在问题中的数据模型以及您从需求角度对 EmployeeList 的分组目标,我们可以尝试进一步帮助您。
我已经看到您可以像这样在 Telerik 的 RadGrid 上执行 GroupByExpressions:
<GroupByExpressions>
<telerik:GridGroupByExpression>
<SelectFields>
<telerik:GridGroupByField FieldAlias="Received" FieldName="Received" FormatString="{0:D}"
HeaderValueSeparator=" from date: "></telerik:GridGroupByField>
</SelectFields>
<GroupByFields>
<telerik:GridGroupByField FieldName="Received" SortOrder="Descending"></telerik:GridGroupByField>
</GroupByFields>
</telerik:GridGroupByExpression>
</GroupByExpressions>
但我正在尝试根据代码对员工进行分组。我试过这个(员工列表有 27 行):
Telerik.Web.UI.GridGroupByExpression groupby = new Telerik.Web.UI.GridGroupByExpression();
groupby.SelectFields.FindByName("EmployeeSoc");
groupby.GroupByFields.FindByName("EmployeeSoc");
gridEmployees.MasterTableView.GroupByExpressions.Add(groupby);
gridEmployees.PageSize = employeelist.Count();
gridEmployees.DataSource = employeelist;
grdDatos.Rebind();
调试期间没有出错,但网格显示 'No records to display.'。
您正在尝试在 RadGrid 中执行 programmatic definition of a group by expression。
我发现有三处可能与您 post 编写的代码不正确。试着看看每一个并找到一个可能的解决方案,或者让你超越当前的错误:
您尚未定义聚合函数。每个分组需要有一个聚合函数(Sum、Avg、Max、Min 等)
您的列表没有正确连接到您的 RadGrid。当我看到错误
No records to display
这意味着无论分组如何,列表中的任何行都不会显示。删除分组代码并让员工在您的 RadGrid 中正确显示而无需分组。
- 您的
SelectField
"EmployeeSoc" 与您的GroupByField
相同。这样做没问题 - 但通常人们喜欢将一列与另一列分组。 (每个产品的价格,或每个类别的平均年龄等)
请 post 您在问题中的数据模型以及您从需求角度对 EmployeeList 的分组目标,我们可以尝试进一步帮助您。