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

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

相关推荐
wuyk55510 小时前
PyQt6-第05讲-QtDesigner工作流与ui文件
python·ui·pyqt
Meta Luo11 小时前
UI 自动化测试中的等待、超时和异步加载怎么处理
功能测试·测试工具·ui·回归·自动化
Light Gao13 小时前
AI 对话助手如何实现动态交互?一文讲清 AG-UI、SSE、组件与工具调用
人工智能·ui·交互·大语言模型·sse·智能体·ag-ui
MicrosoftReactor16 小时前
技术速递|当聊天框不再是合适的交互界面
ui·ai·copilot·canvas
秋名山小白18 小时前
UI自动化-Airtest框架落地实战
运维·ui·自动化
const_qiu19 小时前
第 2.5 章 2.5.8:质量关 —— 安全审查、UI/UX 审查与踩坑复盘
java·人工智能·安全·ui·ux
Autumn_ing1 天前
Design.md生成UI怎么验收?举例运营后台的颜色、状态和数据核对
前端·ui·ai·设计系统·paico·ai生成ui·design.md
特立独行的猫a1 天前
仓颉语言UI开发实战:我用仓颉写了个桌面版力扣
算法·leetcode·ui·tauri·仓颉·cj-tarui
Wang's Blog2 天前
Java 项目实战: 交友项目 - JWT 概述:为什么要用 Token 换掉 Session
java·ui·交友