1、指定给一列进行排序
dgvContent.Columns[
"
SomeFieldName
"
].SortOrder
=
DevExpress.Data.ColumnSortOrder.Ascending;
2、对于已经排好序的数据,想不让它进行排序或者另外指定排序
dgvContent.ClearSorting();
3、指定表格只按特殊列进行排序
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![ExpandedBlockStart.gif](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
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;
}
GridView view
= sender
as GridView;
string sort = (view.DataSource as DataView).Sort;
if (sort != string .Empty)
(view.DataSource as DataView).Sort = " [Col1], " + sort;
}
4、在点击表头进行排序时弹出对话框,让用户确认是否排序
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![ExpandedBlockStart.gif](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
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));
}
}
}
{
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));
}
}
}
5、将排序的信息显示在分组表头
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![ExpandedBlockStart.gif](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
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 (info.Column.SortOrder != DevExpress.Data.ColumnSortOrder.Ascending || info.Column.SortIndex != view.SortInfo.Count - 1 )
{
info.Column.SortIndex = view.SortInfo.Count;
info.Column.SortOrder = DevExpress.Data.ColumnSortOrder.Ascending;
}
else if (info.Column.SortOrder == DevExpress.Data.ColumnSortOrder.Ascending)
{
info.Column.SortOrder = DevExpress.Data.ColumnSortOrder.Descending;
}
if (info.Column.SortOrder == DevExpress.Data.ColumnSortOrder.Ascending)
dgvContent.GroupPanelText = " 拖拉一列 按 " + info.Column.Caption + " 升序 " ;
if (info.Column.SortOrder == DevExpress.Data.ColumnSortOrder.Descending)
dgvContent.GroupPanelText = " 拖拉一列 按 " + info.Column.Caption + " 降序 " ;
((DevExpress.Utils.DXMouseEventArgs)e).Handled = true ;
this .BeginInvoke( new MethodInvoker(view.LayoutChanged));
}
{
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 (info.Column.SortOrder != DevExpress.Data.ColumnSortOrder.Ascending || info.Column.SortIndex != view.SortInfo.Count - 1 )
{
info.Column.SortIndex = view.SortInfo.Count;
info.Column.SortOrder = DevExpress.Data.ColumnSortOrder.Ascending;
}
else if (info.Column.SortOrder == DevExpress.Data.ColumnSortOrder.Ascending)
{
info.Column.SortOrder = DevExpress.Data.ColumnSortOrder.Descending;
}
if (info.Column.SortOrder == DevExpress.Data.ColumnSortOrder.Ascending)
dgvContent.GroupPanelText = " 拖拉一列 按 " + info.Column.Caption + " 升序 " ;
if (info.Column.SortOrder == DevExpress.Data.ColumnSortOrder.Descending)
dgvContent.GroupPanelText = " 拖拉一列 按 " + info.Column.Caption + " 降序 " ;
((DevExpress.Utils.DXMouseEventArgs)e).Handled = true ;
this .BeginInvoke( new MethodInvoker(view.LayoutChanged));
}
6、清除其他列的排序
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![ExpandedBlockStart.gif](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
for
(
int
i
=
0
; i
<
view.Columns.Count; i
++
)
{
if ( ! view.Columns[i].Equals(info.Column))
{
view.Columns[i].SortOrder = DevExpress.Data.ColumnSortOrder.None;
}
}
{
if ( ! view.Columns[i].Equals(info.Column))
{
view.Columns[i].SortOrder = DevExpress.Data.ColumnSortOrder.None;
}
}