1、指定给一列进行排序
dgvContent.Columns["SomeFieldName"].SortOrder = DevExpress.Data.ColumnSortOrder.Ascending;
2、对于已经排好序的数据,想不让它进行排序或者另外指定排序
dgvContent.ClearSorting();
3、指定表格只按特殊列进行排序
private void dgvContent_EndSorting(object sender, System.EventArgs e) {
GridView view = sender as GridView;
string sort = (view.DataSource as DataView).Sort;
if (sort != string.Empty)
(view.DataSource as DataView).Sort = "[Col1]," + sort;
}
4、在点击表头进行排序时弹出对话框,让用户确认是否排序
private void dgvContent_MouseUp(object sender, MouseEventArgs e)
{
if(e.Button != MouseButtons.Left || e.Clicks > 1)
return;
GridView view = sender as GridView;
if(view.State != GridState.ColumnDown)
return;
Point p = view.GridControl.PointToClient(MousePosition);
GridHitInfo info = view.CalcHitInfo(p);
if(info.HitTest == GridHitTest.Column)
{
if(MessageBox.Show(string.Format("Sort by {0} column?", info.Column.Caption),
"Confirmation", MessageBoxButtons.YesNo) != DialogResult.Yes)
{
((DevExpress.Utils.DXMouseEventArgs)e).Handled = true;
this.BeginInvoke(new MethodInvoker(view.LayoutChanged));
}
}
}