界面控件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;
}

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

相关推荐
追逐时光者13 小时前
一个 WPF 开源、免费的 SVG 图像查看控件
后端·.net
智算菩萨18 小时前
【实战】使用讯飞星火API和Python构建一套文本摘要UI程序
开发语言·python·ui
时光追逐者19 小时前
一个基于 .NET 开源、功能强大的分布式微服务开发框架
分布式·微服务·开源·c#·.net·.net core
步步为营DotNet19 小时前
深入探究.NET中依赖注入(DI)的生命周期管理:构建稳健且高效的应用
.net
top_designer21 小时前
Illustrato:钢笔工具“退休”了?Text to Vector 零基础矢量生成流
前端·ui·aigc·交互·ux·设计师·平面设计
步步为营DotNet1 天前
深度解析.NET中LINQ查询的延迟执行与缓存机制:优化数据查询性能
缓存·.net·linq
巴拉巴拉~~1 天前
Flutter高级动画艺术:掌握交错动画,打造丝滑精致的UI体验
javascript·flutter·ui
我是唐青枫2 天前
C#.NET ref struct 深度解析:语义、限制与最佳实践
c#·.net
武藤一雄2 天前
[奇淫巧技] WPF篇 (长期更新)
windows·microsoft·c#·.net·wpf