Goto Data Grid 数据网格
Sorting 排序
Sort Data 对数据进行排序
默认情况下,最终用户可以按任何列对数据进行排序,但具有 MemoExEdit、ImageEdit 和 PictureEdit 就地编辑器的列除外。在运行时,单击列标题一次可对数据进行升序排序。后续点击将反转排序顺序。列标题中的排序字形(向上或向下箭头)表示当前排序顺序。
要按特定列对数据进行排序,最终用户还可以右键单击此列的标题,然后选择“升序排序”或“降序排序”。
Related API 相关 API
- GridOptionsCustomization.AllowSort - 禁用按任何网格列排序。
- OptionsColumn.AllowSort - 禁用按此特定列排序。
Multi-Column Sorting 多列排序
当最终用户单击列标题时,数据网格将丢弃当前应用的排序,并在用户通过标题上下文菜单对数据进行排序时保留该排序。因此,要按多列对数据进行排序,最终用户应使用标题上下文菜单或在单击列标题时按住 Shift 键。在下图中,数据首先按 “Customer ID” 字段升序排序,然后按订单日期降序排序。
Clear Sorting 清除排序
要删除按特定列进行的数据排序,最终用户应在按住 Ctrl 键的情况下单击此列的标题。或者,用户可以右键单击此标题并选择 “Clear Sorting”。要同时删除按所有列排序,请改为选择“清除所有排序”。
Related API 相关 API
- GridOptionsCustomization.AllowSort - 阻止最终用户通过 Ctrl + 单击列标题来取消对数据排序,并禁用所有网格列的“清除排序”选项。
- OptionsColumn.AllowSort - 阻止最终用户通过 Ctrl + 单击此列的标题来取消对数据的排序,并禁用此列的“清除排序”选项。
- GridView.PopupMenuShowing - 允许您手动修改或删除上下文菜单项,最终用户可以使用这些菜单项更改排序。下面的代码更改了“Clear All Sorting”项行为,以便最终用户将无法按“Order Date”列删除预定义排序。
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。否则,项目将按其显示值的字母顺序排序。