界面控件DevExpress WinForms中文教程:Data Grid - 如何获取汇总值?

DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!

DevExpress WinForms GridControl允许您获取汇总值,以便可以在计算中使用它们或自定义网格视图。在本教程中,您将首先了解如何根据分组汇总值对分组进行格式化,然后您将看到如何获取汇总值并使用它们为页脚单元格指定不同的显示文本。

获取DevExpress WinForms v25.1正式版下载

开始

从一个GridControl开始,它已经有了总汇总和分组汇总。Order Sum列下的页脚单元格显示平均列值,Unit Price列有两个摘要,用于计算列值的最大值和最小值,分组行显示每个组中的记录数。

获取分组汇总值

关闭应用程序,选择View并处理其GridView.RowStyle事件,来根据分组汇总值指定分组行背景颜色。在事件处理程序中,调用GridView.GetGroupSummaryValues方法,此方法返回包含指定分组行的所有摘要值的散列表。由于网格只显示一个分组摘要,因此只需从视图的GridView.GroupSummary集合中获取第一个元素,使用此值作为哈希表的键值来获取汇总项值,如果获得的值大于3,则更改背景颜色。

C#

cs 复制代码
using DevExpress.XtraGrid.Views.Grid;
// ...
private void gridView_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e) {
GridView view = sender as GridView;
if (view == null) return;
if (e.RowHandle >= 0 || view.GroupCount == 0) return;
// Get all group summary values.
Hashtable ht = view.GetGroupSummaryValues(e.RowHandle);
// Access the first group summary.
GridSummaryItem groupSummaryItem = view.GroupSummary[0];
// Obtain the group summary's value.
int childRecordCount = Convert.ToInt32(ht[groupSummaryItem]);
if (childRecordCount > 3)
e.Appearance.BackColor = Color.FromArgb(70, Color.Red);
}

运行应用程序来查看结果,现在突出显示汇总值大于3的组行。

获取总汇总值

下面的示例演示如何获取汇总值:

C#

cs 复制代码
var summaryValue = gridColumn.SummaryItem.SummaryValue;

网格列可以在网格的页脚显示多个摘要,下面的示例演示如何获取所有汇总:

C#

cs 复制代码
List<object> summaryValues = new List<object>();
foreach(DevExpress.XtraGrid.GridSummaryItem summary in gridColumn2.Summary)
summaryValues.Add(summary.SummaryValue);

处理GridView.CustomDrawFooterCell事件,来自定义总汇总显示文本的格式、自定义其外观设置等。

首先使用事件参数获取正在处理的汇总项,然后使用GridSummaryItem.SummaryValue属性获取汇总值。最后生成一个新的显示文本,其中包括汇总类型、列标题和摘要值,并将该文本分配给事件的参数。默认的绘制机制将在事件处理程序执行后调用,它将自动显示修改后的文本。

C#

cs 复制代码
private void gridView_CustomDrawFooterCell(object sender, DevExpress.XtraGrid.Views.Grid.FooterCellCustomDrawEventArgs e) {
GridSummaryItem summary = e.Info.SummaryItem;
// Obtain the total summary's value.
double summaryValue = Convert.ToDouble(summary.SummaryValue);
string summaryText = String.Format("{0} {1} = {2:c2}", summary.SummaryType, e.Column.GetCaption(), summaryValue);
e.Info.DisplayText = summaryText;
}

运行应用程序来查看结果,所有的总汇总都要显示汇总类型,并以列标题和格式化值为目标。

相关推荐
AI_零食1 天前
开源鸿蒙跨平台Flutter开发:昼夜节律与睡眠相位-脑电波周期与最佳苏醒测绘架构
flutter·ui·华为·架构·开源·harmonyos·鸿蒙
stevenzqzq1 天前
推荐页核心 UI 实现逻辑说明
ui
AI_零食1 天前
Flutter 框架跨平台鸿蒙开发 - 自定义式按钮设计应用
学习·flutter·ui·华为·harmonyos·鸿蒙
千百元2 天前
codex 中使用 ui-ux-pro-max-skill
ui·ux
武藤一雄2 天前
C# 异常(Exception)处理避坑指南
windows·microsoft·c#·.net·.netcore·鲁棒性
步步为营DotNet2 天前
剖析.NET 11 中 Native AOT 在高性能客户端应用的极致实践
.net
samroom2 天前
【鸿蒙应用开发 Dev ECO Studio 5.0版本】从0到1!从无到有!最全!计算器------按钮动画、滑动退格、中缀表达式转后缀表达式、UI设计
数据结构·ui·华为·typescript·harmonyos·鸿蒙
步步为营DotNet2 天前
深度探索.NET Aspire在云原生应用性能与安全加固的创新实践
安全·云原生·.net
我是唐青枫2 天前
C#.NET TPL Dataflow 深入解析:数据流管道、背压控制与实战取舍
c#·.net
之歆2 天前
Element Plus 深度解析 - 企业级 UI 组件库的设计与实践
ui·element plus