我的编程空间,编程开发者的网络收藏夹
学习永远不晚

DataGridView实现点击列头升序和降序排序

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

DataGridView实现点击列头升序和降序排序

DataGridView 列有三种排序模式。每一列的排序模式是通过该列的 SortMode 属性指定的,该属性可以设置为以下的 DataGridViewColumnSortMode 枚举值之一。

DataGridViewColumnSortMode 值说明:

  • Automatic
    文本框列的默认排序模式。除非将列标头用于选择,否则单击列标头将自动按此列对 DataGridView 排序,并显示一个指示排序顺序的标志符号(向上的三角箭头:升序排序;向下的三角箭头:降序排序)。
  • NotSortable
    非文本框列的默认排序模式。可以以编程方式对此列排序;但此列不适合排序,因此未为排序标志符号保留空间。
  • Programmatic
    可以以编程方式对此列排序;而且为排序标志符号保留了空间。

一、使用SortMode属性自动排序

1、通过程序设置

private void FrmMain_Load(object sender, EventArgs e)
{
     foreach (DataGridViewColumn column in this.dgv_Users.Columns)
    {
          //设置自动排序
          column.SortMode = DataGridViewColumnSortMode.Automatic;
    }
}

2、在设计界面修改属性

二、使用编程的方式实现自定义排序

可以以编程方式按任一列或多列中的值对 DataGridView 排序,而不论 SortMode 设置如何。当希望为排序提供自己的用户界面 (UI) 时,或者当希望实现自定义排序时,以编程方式排序很有用。提供自己的排序用户界面非常有用,例如,在设置 DataGridView 选择模 式以启用列标头选择时。在这种情况下,虽然列标头不能用于排序,但是仍希望标头显示相应的排序标志符号,因此将 SortMode 属性设置为 Programmatic。

设置为编程排序模式的列不会自动显示排序标志符号。对于这些列,必须通过设置 System.Windows.Forms.DataGridViewColumnHeaderCell.SortGlyphDirection 属性 来手动显示标志符号。为了在自定义排序中能够灵活操作,这是必需的。例如,如果按多列对 DataGridView 排序,则可能希望显示多个排序标志符 号或不显示任何标志符号。

对于已排序的 DataGridView,可以通过检查 SortedColumn 和 SortOrder 属性的值确定排序列和排序顺序。

如果SortMode的属性设置为Programmatic就需要使用编程的方式在ColumnHeaderMouseClick事件中实现自定义排序。

示例:

private void dgv_Users_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{          
     DataGridView dgv = sender as DataGridView;
     if (dgv.Columns[e.ColumnIndex].SortMode == DataGridViewColumnSortMode.Programmatic)
     {
         string columnBindingName = dgv.Columns[e.ColumnIndex].DataPropertyName;
         switch (dgv.Columns[e.ColumnIndex].HeaderCell.SortGlyphDirection)
         {
            case System.Windows.Forms.SortOrder.None:
            case System.Windows.Forms.SortOrder.Ascending:
                   CustomSort(columnBindingName, "desc");
                   dgv.Columns[e.ColumnIndex].HeaderCell.SortGlyphDirection = System.Windows.Forms.SortOrder.Descending;
                   break;
            case System.Windows.Forms.SortOrder.Descending:
                   CustomSort(columnBindingName, "asc");
                   dgv.Columns[e.ColumnIndex].HeaderCell.SortGlyphDirection = System.Windows.Forms.SortOrder.Ascending;
                   break;
            }
       }          
}

/// <summary>
/// 自定义排序
/// </summary>
/// <param name="columnName">绑定的字段名</param>
/// <param name="sortMode">排序方式 asc 升序 desc 降序</param>
private void CustomSort(string columnBindingName, string sortMode)
{
      DataTable dt = this.dgv_Users.DataSource as DataTable;
      DataView dv = dt.DefaultView;
      dv.Sort = columnBindingName + " " + sortMode;
      this.dgv_Users.DataSource = dv.ToTable();
      this.dgv_Users.Refresh();
}

到此这篇关于DataGridView实现点击列头升序和降序排序的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

DataGridView实现点击列头升序和降序排序

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

点击表头切换升降序排序方式

需求: 在报表的实际应用中有很多客户希望可以通过点击表头切换该列数据的排序。实现方式: 超链接结合参数以及单元格表达式来实现,具体举例如下 原表样如下实现原理:通过点击第一行任意格的值,通过 A2 单元格表达式控制排
2023-06-02

datagridview倒序排列怎么实现

要实现DataGridView的倒序排列,可以使用DataGridView的Sort方法,将排序的方向设置为Descending(降序)。示例代码如下:```csharpdataGridView1.Sort(dataGridView1.Co
2023-10-10

jquery点击怎么实现升序降序图标切换

这篇文章主要讲解了“jquery点击怎么实现升序降序图标切换”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jquery点击怎么实现升序降序图标切换”吧!需求: 有一个查询结果,返回的是表格的
2023-07-02

sql降序排列怎么实现

在SQL中,可以使用ORDER BY子句来实现降序排列。ORDER BY子句可以与SELECT语句一起使用,用于指定按照哪个列来排序查询结果。例如,假设有一个名为employees的表,其中包含以下列:employee_id、first_
sql降序排列怎么实现
2024-04-09

mysql中select语句降序排列怎么实现

在MySQL中,可以使用ORDER BY子句来对查询结果进行降序排列。例如,假设我们有一个名为students的表,其中有name和score两个列,我们想要按照分数降序排列查询结果,可以使用以下语句:SELECT * FROM stud
mysql中select语句降序排列怎么实现
2024-04-09

drupal实现输出可点击表头排序表格的方法

本文实例讲述了drupal实现输www.cppcns.com出可点击表头排序表格的方法。分享给大家供大家参考。具体实现方法如下: drupal中可以用theme_table输出表格,并且支持点击表头排序。步骤如下:编程客栈1.定义表头:复制
2022-06-12

怎么实现大数据报表的点击表头排序需求

这篇文章将为大家详细讲解有关怎么实现大数据报表的点击表头排序需求,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。实现方式: 超链接结合参数以及单元格表达式来实现,具体举例如下 原
2023-06-04

sql数据库升序排列怎么实现

在SQL中,可以使用"ORDER BY"子句对查询结果进行升序排序。以下是使用"ORDER BY"子句实现升序排序的示例:假设有一个名为"Students"的表,其中包含"Name"和"Age"两列。要按照"Age"列进行升序排列,可以使
2023-10-27

php冒泡算法实现倒序和正序排列的示例代码

本篇文章详细介绍了PHP冒泡排序算法实现倒序和正序排列的示例代码。冒泡排序是一种通过比较相邻元素并交换不满足排序条件的元素,最终将数组排序为升序或降序的简单算法。文中提供了两个函数:bubbleSortDesc用于倒序排列,bubbleSortAsc用于正序排列。使用示例中展示了如何使用这些函数对数组进行排序并输出结果。
php冒泡算法实现倒序和正序排列的示例代码
2024-04-02

Android实现软件列表的点击启动另外一个程序功能【附demo源码下载】

本文实例讲述了Android实现软件列表的点击启动另外一个程序功能。分享给大家供大家参考,具体如下: 目前面世的许多软件中有这么一个功能:设备中安装了哪些软件,他们会以一个软件列表清单的形式向用户展示出来。 今天我们就来实现这一功能: 运行
2022-06-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录