欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

DataGridView實(shí)現(xiàn)點(diǎn)擊列頭升序和降序排序

 更新時(shí)間:2022年02月28日 10:42:55   作者:.NET開發(fā)菜鳥  
這篇文章介紹了DataGridView實(shí)現(xiàn)點(diǎn)擊列頭升序和降序排序的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

DataGridView 列有三種排序模式。每一列的排序模式是通過(guò)該列的 SortMode 屬性指定的,該屬性可以設(shè)置為以下的 DataGridViewColumnSortMode 枚舉值之一。

DataGridViewColumnSortMode 值說(shuō)明:

  • Automatic
    文本框列的默認(rèn)排序模式。除非將列標(biāo)頭用于選擇,否則單擊列標(biāo)頭將自動(dòng)按此列對(duì) DataGridView 排序,并顯示一個(gè)指示排序順序的標(biāo)志符號(hào)(向上的三角箭頭:升序排序;向下的三角箭頭:降序排序)。
  • NotSortable
    非文本框列的默認(rèn)排序模式??梢砸跃幊谭绞綄?duì)此列排序;但此列不適合排序,因此未為排序標(biāo)志符號(hào)保留空間。
  • Programmatic
    可以以編程方式對(duì)此列排序;而且為排序標(biāo)志符號(hào)保留了空間。

一、使用SortMode屬性自動(dòng)排序

1、通過(guò)程序設(shè)置

private void FrmMain_Load(object sender, EventArgs e)
{
     foreach (DataGridViewColumn column in this.dgv_Users.Columns)
    {
          //設(shè)置自動(dòng)排序
          column.SortMode = DataGridViewColumnSortMode.Automatic;
    }
}

2、在設(shè)計(jì)界面修改屬性

二、使用編程的方式實(shí)現(xiàn)自定義排序

可以以編程方式按任一列或多列中的值對(duì) DataGridView 排序,而不論 SortMode 設(shè)置如何。當(dāng)希望為排序提供自己的用戶界面 (UI) 時(shí),或者當(dāng)希望實(shí)現(xiàn)自定義排序時(shí),以編程方式排序很有用。提供自己的排序用戶界面非常有用,例如,在設(shè)置 DataGridView 選擇模 式以啟用列標(biāo)頭選擇時(shí)。在這種情況下,雖然列標(biāo)頭不能用于排序,但是仍希望標(biāo)頭顯示相應(yīng)的排序標(biāo)志符號(hào),因此將 SortMode 屬性設(shè)置為 Programmatic。

設(shè)置為編程排序模式的列不會(huì)自動(dòng)顯示排序標(biāo)志符號(hào)。對(duì)于這些列,必須通過(guò)設(shè)置 System.Windows.Forms.DataGridViewColumnHeaderCell.SortGlyphDirection 屬性 來(lái)手動(dòng)顯示標(biāo)志符號(hào)。為了在自定義排序中能夠靈活操作,這是必需的。例如,如果按多列對(duì) DataGridView 排序,則可能希望顯示多個(gè)排序標(biāo)志符 號(hào)或不顯示任何標(biāo)志符號(hào)。

對(duì)于已排序的 DataGridView,可以通過(guò)檢查 SortedColumn 和 SortOrder 屬性的值確定排序列和排序順序。

如果SortMode的屬性設(shè)置為Programmatic就需要使用編程的方式在ColumnHeaderMouseClick事件中實(shí)現(xiàn)自定義排序。

示例:

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();
}

到此這篇關(guān)于DataGridView實(shí)現(xiàn)點(diǎn)擊列頭升序和降序排序的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解C# WinForm如何實(shí)現(xiàn)自動(dòng)更新程序

    詳解C# WinForm如何實(shí)現(xiàn)自動(dòng)更新程序

    在C/S這種模式中,自動(dòng)更新程序就顯得尤為重要,它不像B/S模式,直接發(fā)布到服務(wù)器上,瀏覽器點(diǎn)個(gè)刷新就可以了。本文就為大家準(zhǔn)備了WinForm實(shí)現(xiàn)自動(dòng)更新程序的示例代碼,需要的可以參考一下
    2022-10-10
  • c#轉(zhuǎn)義字符串中的所有正則特殊字符方法示例

    c#轉(zhuǎn)義字符串中的所有正則特殊字符方法示例

    這篇文章主要介紹了c#轉(zhuǎn)義字符串中的所有正則特殊字符,大家可以參考使用
    2013-12-12
  • c# 判斷是否為空然后賦值的4種實(shí)現(xiàn)方法

    c# 判斷是否為空然后賦值的4種實(shí)現(xiàn)方法

    下面小編就為大家分享一篇c# 判斷是否為空然后賦值的4種實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • C#?wpf實(shí)現(xiàn)任意控件更多調(diào)整大小功能

    C#?wpf實(shí)現(xiàn)任意控件更多調(diào)整大小功能

    這篇文章主要為大家詳細(xì)介紹了C#?wpf實(shí)現(xiàn)任意控件更多調(diào)整大小功能的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • C#實(shí)現(xiàn)多文件壓縮與解壓功能

    C#實(shí)現(xiàn)多文件壓縮與解壓功能

    這篇文章主要為大家詳細(xì)介紹了如何利用C#語(yǔ)言實(shí)現(xiàn)多文件壓縮與解壓功能,即選擇多個(gè)文件壓縮成ZIP文件和解壓ZIP文件,需要的可以參考一下
    2022-08-08
  • C#中的只讀結(jié)構(gòu)體(readonly struct)詳解

    C#中的只讀結(jié)構(gòu)體(readonly struct)詳解

    這篇文章主要給大家介紹了關(guān)于C#中只讀結(jié)構(gòu)體(readonly struct)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • C#連接Informix數(shù)據(jù)庫(kù)的問(wèn)題

    C#連接Informix數(shù)據(jù)庫(kù)的問(wèn)題

    這篇文章主要介紹了C#連接Informix數(shù)據(jù)庫(kù)的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的工作或?qū)W習(xí)具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • C#多線程中的異常處理操作示例

    C#多線程中的異常處理操作示例

    這篇文章主要介紹了C#多線程中的異常處理操作,涉及C#多線程及異常的捕獲、處理等相關(guān)操作技巧,需要的朋友可以參考下
    2019-05-05
  • Unity3D實(shí)現(xiàn)列表分頁(yè)效果

    Unity3D實(shí)現(xiàn)列表分頁(yè)效果

    這篇文章主要為大家詳細(xì)介紹了Unity3D實(shí)現(xiàn)列表分頁(yè)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • c# 實(shí)現(xiàn)計(jì)時(shí)器功能

    c# 實(shí)現(xiàn)計(jì)時(shí)器功能

    這篇文章主要介紹了c# 實(shí)現(xiàn)計(jì)時(shí)器功能的示例代碼,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2020-12-12

最新評(píng)論