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

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

相关推荐
for_ever_love__1 小时前
UI学习:单例传值
学习·ui·ios·objective-c
for_ever_love__1 小时前
UI学习:通知传值
学习·ui·ios·objective-c
ZC跨境爬虫2 小时前
跟着 MDN 学 HTML day_1:(全套原生Input+表单结构拆解)
前端·css·ui·html
慕容卡卡2 小时前
Claude 使用神器(web页面)--CloudCLI UI
java·开发语言·前端·人工智能·ui·spring cloud
qq_452396232 小时前
第十四篇:《持续集成中的UI自动化:Jenkins/GitHub Actions集成》
ui·ci/cd·自动化
ZC跨境爬虫2 小时前
Apple官网复刻第二阶段day_6:(统一页脚模块封装+CSS公共复用体系落地)
前端·css·ui·重构·html
吴声子夜歌3 小时前
Vue3——UI组件库Element Plus(二)
javascript·vue.js·ui·elementplus
qq_452396233 小时前
第十三篇:《UI自动化测试框架设计:整合TestNG/JUnit + Allure报告》
ui·junit
唐青枫3 小时前
别再把增删改查写成一锅粥!C#.NET CQRS 从原理到实战
c#·.net
邪修king4 小时前
UE5 零基础入门第四弹:UMG UI 系统入门,从静态界面到逻辑联动
c++·ui·ue5