最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

DataGridViewColumnSortMode 值說明:

  • Automatic
    文本框列的默認排序模式。除非將列標頭用于選擇,否則單擊列標頭將自動按此列對 DataGridView 排序,并顯示一個指示排序順序的標志符號(向上的三角箭頭:升序排序;向下的三角箭頭:降序排序)。
  • NotSortable
    非文本框列的默認排序模式??梢砸跃幊谭绞綄Υ肆信判颍坏肆胁贿m合排序,因此未為排序標志符號保留空間。
  • Programmatic
    可以以編程方式對此列排序;而且為排序標志符號保留了空間。

一、使用SortMode屬性自動排序

1、通過程序設置

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

2、在設計界面修改屬性

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

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

設置為編程排序模式的列不會自動顯示排序標志符號。對于這些列,必須通過設置 System.Windows.Forms.DataGridViewColumnHeaderCell.SortGlyphDirection 屬性 來手動顯示標志符號。為了在自定義排序中能夠靈活操作,這是必需的。例如,如果按多列對 DataGridView 排序,則可能希望顯示多個排序標志符 號或不顯示任何標志符號。

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

如果SortMode的屬性設置為Programmatic就需要使用編程的方式在ColumnHeaderMouseClick事件中實現(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();
}

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

相關文章

最新評論

肃南| 基隆市| 精河县| 且末县| 诸城市| 韩城市| 卢氏县| 郁南县| 蓬溪县| 彭山县| 象州县| 商洛市| 深泽县| 珲春市| 甘南县| 呼和浩特市| 博爱县| 安阳市| 河西区| 灵川县| 康保县| 卢氏县| 哈密市| 锦屏县| 长沙县| 曲周县| 固阳县| 凤山市| 浦城县| 台湾省| 海兴县| 辽中县| 芜湖市| 丹寨县| 榆中县| 谢通门县| 沁阳市| 迭部县| 虎林市| 武川县| 鸡西市|