DevExpress WinForms中文教程:Data Grid - 如何自定义排序和非排序列?

news/2025/10/11 10:22:32/文章来源:https://www.cnblogs.com/AABBbaby/p/19134454

DevExpress WinForms中文教程:Data Grid - 如何自定义排序和非排序列?

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

在本教程中,您将学习如何实现自定义排序算法来对Birth Date列的值进行排序,而不考虑日期的年份部分,从而获得组织中所有生日的正确排序列表,同时还将学习针对包含不可排序数据(如图像)的列启用排序的技术。

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

DevExpress技术交流群11:749942875      欢迎一起进群讨论

默认操作

如果单击Birth Date列标题,默认算法将首先考虑年、月、天对日期进行排序。如您所见,该列表显示1月份的生日,然后是5月份的生日,然后又是1月份的生日,因为它们是按年份排序的。

DevExpress WinForms中文使用教程图集
实现自定义排序逻辑

本教程实现了一个自定义排序逻辑,该逻辑将忽略年份部分,并给出仅按月份和日期排序的生日列表。

首先,将列的GridColumn.SortMode属性设置为ColumnSortMode.Custom。

DevExpress WinForms中文使用教程图集

之后,选择网格视图并处理它的ColumnView.CustomColumnSort事件。

要处理的列由事件的CustomColumnSortEventArgs.Column参数指定,事件处理程序比较使用CustomColumnSortEventArgs.Value1和CustomColumnSortEventArgs.Value2参数指定的两个值,自定义比较的结果被设置为CustomColumnSortEventArgs.Result参数。这个例子比较了生日月份,如果第一个月的数字大于第二个月的数字,则Result参数设置为1,如果第一个月的数字小于第二个月的数字,则将Result参数设置为-1。如果值相等,比较天数。

事件的CustomColumnSortEventArgs.Handled参数被设置为true,以防止在事件执行后调用默认的比较机制。

C#

private void gridView_CustomColumnSort(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnSortEventArgs e) {
if (e.Column.FieldName == "BirthDate") {
e.Handled = true;
int month1 = Convert.ToDateTime(e.Value1).Month;
int month2 = Convert.ToDateTime(e.Value2).Month;
if (month1 > month2)
e.Result = 1;
else
if (month1 < month2)
e.Result = -1;
else e.Result = System.Collections.Comparer.Default.Compare(Convert.ToDateTime(e.Value1).Day, Convert.ToDateTime(e.Value2).Day);
}
}

运行应用程序并单击Birth Date列标题,单元格值现在基于月份和日期比较进行排序,排序顺序忽略年份。

DevExpress WinForms中文使用教程图集
实现非排序列的排序算法

GridControl 可以包含显示不可排序数据(如图像)的列。

Photo列使用PictureEdit就地编辑器显示图像,单击其标题时不会发生任何事情。但是,您也可以为此列启用数据排序。

首先,选择Photo列,展开它的GridColumn.OptionsColumn属性,并将OptionsColumn.AllowSort设置为true。然后,将其GridColumn.SortMode属性设置为ColumnSortMode.Custom。

将以下代码添加到ColumnView.CustomColumnSort事件处理程序中。当Photo列的数据排序时,数据实际上将根据First Name列排序。在数据源级别使用事件的CustomColumnSortEventArgs.ListSourceRowIndex1和CustomColumnSortEventArgs.ListSourceRowIndex2参数访问列值,CustomColumnSortEventArgs.Handled参数被设置为true,表示已经处理了比较操作。

C#

private void gridView_CustomColumnSort(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnSortEve
// ...
if (e.Column.FieldName == "Photo") {
e.Handled = true;
DataRowView dr1 = (gridView.DataSource as BindingSource)[e.ListSourceRowIndex1] as DataRowView;
DataRowView dr2 = (gridView.DataSource as BindingSource)[e.ListSourceRowIndex2] as DataRowView;
e.Result = System.Collections.Comparer.Default.Compare(dr1["FirstName"], dr2["FirstName"]);
}
}

运行应用程序并单击Photo列标题,网格数据现在根据FirstName列中的值排序。

DevExpress WinForms中文使用教程图集

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/934621.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 年过滤机厂家最新推荐排行榜:胶带式 / 盘式真空 / 脱水 / 带式真空 / 水平带式过滤机企业权威选购指南

在工业生产与环保处理的关键环节中,固液分离效率直接影响企业生产进度、产品品质及环保合规性,而过滤机作为核心设备,其性能与品质至关重要。当前过滤机市场品牌繁杂、产品质量参差不齐,部分设备存在过滤速度慢、自…

国产代码管理平台Gitee:破解企业级Git自建难题的密钥

国产代码管理平台Gitee:破解企业级Git自建难题的密钥 在全球数字化转型浪潮中,代码资产已成为企业的核心战略资源。随着国际形势变化和国内数据安全法规日趋严格,越来越多的企业开始重新审视代码托管平台的选择。作…

2025 年蜂巢/高强/HDPE/PET/高分子/塑料/插接/土工格室厂家口碑推荐榜:聚焦品质与服务,助力工程选材更高效

随着基础设施建设持续推进、生态环境治理力度加大及工程建设标准不断提升,土工合成材料作为工程建设中的关键配套材料,已从单一功能应用逐步向多功能、高性能、环保化方向发展,2025 年市场规模预计稳步增长。但市场…

基于K近邻(KNN)算法在MATLAB中实现人脸识别

一、代码实现 1. 数据预处理 function processedImg = preprocess(img)% 灰度化grayImg = rgb2gray(img);% 直方图均衡化equalizedImg = histeq(grayImg);% 归一化尺寸processedImg = imresize(equalizedImg, [100, 10…

2025 年最新推荐灭火器维修公司榜单:覆盖干粉 / 水基 / 二氧化碳 / 七氟丙烷 / 锂电池灭火器维修,帮您选到专业可靠服务单位

在消防安全保障体系中,灭火器作为初期灭火关键设备,其性能完好度直接关系到生命财产安全。但当前灭火器维修行业乱象频发,无资质机构滥竽充数、维修技术不达标、服务响应滞后等问题,导致大量维修后的灭火器形同虚设…

Vue大屏可视化自适应(等比列缩放)方案✔️✔️✔️✨

在vue大屏可视化项目中,自适应是确保在不同尺寸屏幕上正常显示的关键需求。下面我将详细介绍我在项目开发中常用的方案:Scale方案的实现✔️✔️1,常用自适应方案CSS媒体查询 - 针对不同屏幕尺寸编写不同样式Flex/G…

scrapy-redis项目:爬取某网站图书信息 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

VonaJS AOP编程:全局中间件全攻略

在VonaJS框架中,AOP编程包括三方面:控制器切面、内部切面和外部切面。控制器切面包括五能力:Middleware、Guard、Interceptor、Pipe、Filter。其中,Middleware又分为:局部中间件、全局中间件和系统中间件。在Vona…

单调队列 (1) - 详解

单调队列 (1) - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &quo…

2025 年 密度 / 净化 / 零醛添加 / 装修 / 生态板 / 指接板板材厂家推荐:纯品梅花深耕高端定制,打造健康家居板材优质选择

行业背景当前全屋定制板材行业正处于快速发展与升级阶段,消费者对家居健康、环保及个性化设计的需求日益提升。然而,市场上部分板材产品存在环保标准不达标、基材种类单一、饰面风格同质化严重等问题,难以满足高端定…

Python3 math 模块

Python3 math 模块在 Python 中,math 模块是处理基础数学运算的核心库,提供了从简单的加减乘除到复杂的三角函数、对数运算等一系列工具函数。与 Python 内置的算术运算符(如 +、*、**)相比,math 模块的函数在精度…

深入解析:考研复习-线性代数-第二章-矩阵

深入解析:考研复习-线性代数-第二章-矩阵pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…

PHP 与 HTML 混写基础

PHP 与 HTML 混写基础这是 PHP 的**模板语法**,允许在 HTML 中嵌入 PHP 代码。让我来详细解释: ## PHP 与 HTML 混写基础 ### 1. 基本语法结构 ```php <?php /* PHP 代码 */ ?> ``` 这是 PHP 代码块的开始和…

2025 年隧道/车丝/打孔/矿用/R780/钢花钢管厂家推荐榜:精准匹配施工需求,优选可靠供应商

近年来,国内基建项目持续推进,矿山开发、隧道施工、桥梁搭建、水利建设等领域对钢管的需求量不断攀升,且对产品规格、性能精度及定制化能力的要求愈发严格。钢管作为工程建设的核心基础材料,其质量直接影响工程结构…

2025 年最新推荐!空压机租赁公司综合实力榜单:涵盖无油 / 高压 / 阿特拉斯等机型及二手买卖置换回收,助力企业精准选靠谱服务商

当前工业生产中,空压机作为核心动力设备,其稳定供应直接影响企业生产效率。但空压机购置成本高、维护复杂,租赁模式成为多数企业的优选。然而,租赁市场乱象频发,部分公司设备老化、库存不足导致交付延迟,售后缺失…

小波神经网络(WNN)预测代码

小波神经网络(WNN)预测代码,结合了小波分析和神经网络的优势,适用于各种时间序列预测任务。 小波神经网络概述 小波神经网络结合了小波变换的多分辨率分析能力和神经网络的非线性映射能力,在预测领域表现出色。特性…

marimo python 响应式notebook 框架

marimo python 响应式notebook 框架marimo python 响应式notebook 框架 包含的特性功能齐全,可以用来替换jupter,streamlit,papermill 等 响应式 git 友好,存储为.py文件 面向数据的设计 ai native 可共享,可以部署…

2025 年报警器厂家最新推荐权威榜单:海湾 / 青鸟 / 利达等品牌全覆盖,详解优质服务商助力安全选购NB烟感/松江烟感/三江烟感/燃气报警器厂家推荐

当前,安全防护需求持续攀升,报警器作为守护生命财产安全的关键设备,市场需求逐年增长。但报警器经销商市场乱象频发,部分经销商以次充好,售卖的产品探测精度低、误报率高,在危险来临时无法及时预警;还有不少经销…

优秀的研发经理,如何布局一周的工作?

所有成功的研发成果,都是技术落地、团队协同、需求对齐与风险防控共同作用的结果。 研发经理不是“技术执行者”,而是“研发战略的转化者与团队效能的推动者”——既要懂技术深度(如架构设计、难点攻关),又要通…

Numerical Heat Transfer and Fluid Flow(《传热与流体流动的数值计算》)

Numerical Heat Transfer and Fluid Flow(《传热与流体流动的数值计算》)Preface1 INTRODUCTION1.1 Scope of the Book1.2 Methods of Prediction1.2-1 Experimental Investigation1.2-2 Theoretical Calculation1…