本節提供有關在數據網格中對數據進行排序的信息。
GridControl-Grid View
Sort Data
默認情況下,最終用戶可以按任何列對數據進行排序,但使用MemoExEdit、ImageEdit和PictureEdit在位編輯器的列除外。在運行時,單擊列標題一次以升序排列數據。相應的單擊將顛倒排序順序。列標題中的排序圖示符(向上或向下箭頭)指示當前排序順序。
要按特定列對數據進行排序,最終用戶也可以右鍵單擊此列的標題,然后選擇“升序排序”或“降序排序”。
相關API
- GridOptionsCustomization.AllowSort——禁用按任何網格列排序。
- OptionsColumn.AllowSort——禁用按此特定列排序
Multi-Column Sorting
當用戶單擊列標題時,數據網格將放棄當前應用的排序,而當用戶通過標題上下文菜單對數據進行排序時,數據柵格將保留該排序。因此,要按多列對數據進行排序,最終用戶應該使用標題上下文菜單,或者在單擊列標題時按住Shift鍵。在下圖中,數據首先按“客戶ID”字段升序排列,然后按訂單日期降序排列。
Clear Sorting
要刪除按特定列排序的數據,最終用戶應單擊該列的標題并按下Ctrl鍵。或者,用戶可以右鍵單擊此標題并選擇“清除排序”。要同時刪除按所有列排序,請選擇“清除所有排序”。
相關API
- GridOptionsCustomization.AllowSort——通過按住Ctrl鍵并單擊列標題來防止用戶取消數據排序,并禁用所有網格列的“清除排序”選項。
- OptionsColumn.AllowSort——通過按住Ctrl鍵并單擊此列的標題來防止用戶取消數據排序,并禁用此列的“清除排序”選項。
- GridView.PopupMenuShowing——允許您手動修改或刪除上下文菜單項,用戶可以使用它更改排序。下面的代碼更改了“清除所有排序”項目行為,因此最終用戶將無法刪除按“訂單日期”列預定義的排序。
using System.Linq;
using DevExpress.Utils.Menu;
//. . .
gridView1.PopupMenuShowing += GridView1_PopupMenuShowing;
//. . .
private void GridView1_PopupMenuShowing(object sender, PopupMenuShowingEventArgs e) {DXMenuItem clearSorting = e.Menu.Items.First(x => x.Caption == "Clear All Sorting");clearSorting.Click += ClearSorting_Click;
}private void ClearSorting_Click(object sender, EventArgs e) {gridView1.SortInfo.ClearAndAddRange(new[] {new GridColumnSortInfo(colOrderDate, DevExpress.Data.ColumnSortOrder.Ascending)});
}
Sort Groups by Summary Values
數據網格可以根據這些組的摘要值對這些組進行排序。有關詳細信息,請參閱摘要文章。
Sort Modes
默認情況下,具有LookUpEdit和ImageComboBoxEdit在位編輯器的列按編輯器的顯示值對數據進行排序。其他列根據編輯器的編輯值對數據進行排序。使用GridColumn.SortMode屬性以更改此排序模式。
在下圖中,具有ImageComboBoxEdit的列被強制按優先級從低到高對項目進行排序。為此,請使用 GridColumn.SortMode必須更改為 ColumnSortMode.Value否則,項目將按顯示值的字母順序進行排序。