本节提供有关在数据网格中对数据进行排序的信息。
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否则,项目将按显示值的字母顺序进行排序。