如何通过代码在 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 编写的代码不正确。试着看看每一个并找到一个可能的解决方案,或者让你超越当前的错误:

  1. 您尚未定义聚合函数。每个分组需要有一个聚合函数(Sum、Avg、Max、Min 等)

  2. 您的列表没有正确连接到您的 RadGrid。当我看到错误

No records to display

这意味着无论分组如何,列表中的任何行都不会显示。删除分组代码并让员工在您的 RadGrid 中正确显示而无需分组。

  1. 您的 SelectField "EmployeeSoc" 与您的 GroupByField 相同。这样做没问题 - 但通常人们喜欢将一列与另一列分组。 (每个产品的价格,或每个类别的平均年龄等)

请 post 您在问题中的数据模型以及您从需求角度对 EmployeeList 的分组目标,我们可以尝试进一步帮助您。