半岛外围网上直营

DevExpress WinForms中文教程:Data Grid - 数据排序基础知识

翻译|使用教程|编辑:龚雪|2025-10-15 14:28:34.300|阅读 15 次

概述:本教程主要为大家介绍如何使用DevExpress WinForms数据网格控件进行数据排序的基础知识,欢迎下载最新版组件体验!

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

相关链接:

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

本教程将指导用户了解最终用户在运行时可用的数据排序功能,还将看到如何在设计时和代码中操作数据排序。

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

DevExpress技术交流群12:1028386091      欢迎一起进群讨论

默认操作

若要根据列对数据进行排序,请单击该列的标题,网格将按升序对值进行排序,顺序由显示在列标题右边缘的字形表示。

DevExpress WinForms中文使用教程图集

单击相同的列标题可反转排序顺序,注意排序符号现在也被颠倒了。

DevExpress WinForms中文使用教程图集

如果单击另一个列标题,则清除以前应用的所有数据排序。若要保留现有的排序设置,从而对多个列进行排序,请在单击时按住SHIFT键。只有当第一列中有重复的值时,按第二列排序才有意义。

DevExpress WinForms中文使用教程图集

如果在列标题菜单中使用Sort AscendingSort Descending项,则还保留先前应用的数据排序。

DevExpress WinForms中文使用教程图集

若要禁用针对特定列的数据排序,请按住CTRL键并单击该列的标题,使用列标题菜单中的Clear Sorting项也可以完成相同的操作。如果需要清除所有的数据排序条件,请使用Clear All Sorting项。

DevExpress WinForms中文使用教程图集
在设计时的排序

您可以在设计时网格数据使用列标题上下文菜单或Property Grid,在按住SHIFT键的同时单击项目名称和状态列标题,并将其属性设置为 。

DevExpress WinForms中文使用教程图集

运行应用程序,网格数据根据Project Name和Status列排序。

返回到设计时,并通过将属性设置为来清除这些列的排序设置。

限制最终用户的功能

要禁用针对列的最终用户数据排序,请将列的选项设置为false。

DevExpress WinForms中文使用教程图集

运行应用程序,通过右键单击Project Name列标题,您将发现是否禁用了Sort AscendingSort Descending项。注意,您仍然可以根据其他列对网格数据进行排序。

DevExpress WinForms中文使用教程图集

为了防止最终用户以集中的方式对所有列进行排序,请选择网格视图,展开属性并禁用选项。

再次运行应用程序来确保不能对网格数据进行排序。

代码中的排序

下一步是了解如何在代码中对网格数据进行排序。请注意,无论视图的和列的选项如何,这都可以工作。

根据按钮的Click事件处理程序中的Project Name和Status列对数据进行排序。首先,获取要对其进行排序的对象,通过调用视图的方法清除现有的排序设置。然后,使用属性设置所需的排序顺序。注意GridControl将在每个语句之后重新排序它的数据——在本例中是三次。为了防止过度更新,请使用 和方法。在这种情况下,网格的数据将只重新排序一次。

C#

private void btn_SortData_ItemClick(object sender, ItemClickEventArgs e) {
GridColumn colProject = gridView.Columns["ProjectID"];
GridColumn colStatus = gridView.Columns["Status"];
gridView.BeginSort();
try {
gridView.ClearSorting();
colProject.SortOrder = ColumnSortOrder.Ascending;
colStatus.SortOrder = ColumnSortOrder.Ascending;
}
finally {
gridView.EndSort();
}
}

运行应用程序并单击按钮,因此网格数据是根据Project Name和Status列排序的。

对网格列应用排序的另一种方法是通过调用gridcolumnsortinfocollectionclearandadrange方法将相应的项添加到视图的ColumnViewSortInfo集合中。该方法清除现有的排序,添加新的GridColumnSortInfo对象作为参数传递,并且只更新View一次,因此您不需要ColumnViewBeginSort和ColumnViewEndSort方法。

C#

private void btn_SortData_ItemClick(object sender, ItemClickEventArgs e) {
GridColumn colProject = gridView.Columns["ProjectID"];
GridColumn colStatus = gridView.Columns["Status"];
gridView.SortInfo.ClearAndAddRange(new GridColumnSortInfo[] {
new GridColumnSortInfo(colProject, ColumnSortOrder.Ascending),
new GridColumnSortInfo(colPriority, ColumnSortOrder.Ascending)
});
}

再次运行应用程序并单击按钮来查看结果。


关于慧都科技

慧都是⼀家⾏业数字化解决⽅案公司,专注于软件、⽯油与⼯业领域,以深⼊的业务理解和⾏业经验,帮助企业实现智能化转型与持续竞争优势。

 慧都科技是DevExpress的中国区的合作伙伴,DevExpress作为用户界面领域的优秀产品,帮助企业高效构建权限管理、数据可视化(如网格/图表/仪表盘)、跨平台系统(WinForms/ASP.NET/.NET MAUI)及行业定制解决方案,加速开发并强化交互体验。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@ke049m.cn

文章转载自:慧都网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP
利记足球官网(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 真人boyu·博鱼滚球网(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 最大网上PM娱乐城盘口(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 正规雷火竞技官方买球(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 雷火竞技权威十大网(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) boyu·博鱼信誉足球官网(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 权威188BET足球网(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 正规188BET足球大全(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新)