網站首頁 編程語言 正文
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; } } } ////// 自定義排序 /// /// 綁定的字段名 /// 排序方式 asc 升序 desc 降序 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(); }
原文鏈接:https://www.cnblogs.com/dotnet261010/p/6828380.html
相關推薦
- 2023-07-22 IntelliJ Compilation Error zip END header not foun
- 2022-12-12 python中的線程池threadpool_python
- 2022-04-22 Golang開發中常見錯誤以及注釋、規范代碼風格
- 2023-02-27 python定時任務schedule庫用法詳細講解_python
- 2021-12-10 C#實現簡易灰度圖和酷炫HeatMap熱力圖winform(附DEMO)_C#教程
- 2022-11-29 Mybatis中如何傳入map參數呢?
- 2021-12-02 golang配制高性能sql.DB的使用_Golang
- 2022-06-06 elementUI基礎的引入和使用
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支