一、从客户端实现排序
从客户端调用SortBy方法实现排序:
语法1:void SortBy(ASPxClientGridViewColumncolumn);
语法2:void SortBy(int columnIndex);
语法3:void SortBy(string columnFieldNameOrId);
语法4:void SortBy(string columnFieldNameOrId, string sortOrder);
语法5:void SortBy(ASPxClientGridViewColumn column,string sortOrder);
语法6:void SortBy(int columnIndex, string sortOrder);
参数解释:
SortOrder:排序方向,可取Ascending、Descending值。
Reset:是否清除以前的排序规则,如果不清除,则当前栏位会追加到排序栏位列表中。
(2)点击栏位题头排序。
按住Shift键可以指定多个栏位排序。
二、从服务器端实现排序
排序设置
必须设置AspxGridView允许排序才可执行真正的排序
设置示例:
SettingsBehavior.AllowSort=true
该选项默认为true。
在服务端调用SortBy方法排序
语法1.int SortBy(GridViewColumn column,int value)
语法2.ColumnSortOrder SortBy(GridViewColumn column,ColumnSortOrdervalue)
调用SortBy方法不会自动清除以前的排序栏位,如果不清除之前的排序栏位,则当前栏位会追加到排序栏位列表中。
可以通过以下方法清除以前的排序栏位。
1,调用ClearSort方法来清除以前的排序栏位
2,遍历栏位的SortIndex属性来确定是否参与过排序及排序的次序(SortIndex=-1表示不排序,另外栏位的SortOrder可获取或设置排序方式)。GridViewColumn.SortIndex=-1。
3,调用GridViewColumn.UnSort()方法
示例:
protectedvoidbtnServerSort_Click(objectsender,EventArgse)
{
string sortColumn=this.ddlSortColumn.SelectedValue;
string sortType=this.ddlSortType.SelectedValue;
GridViewDataColumn sortDataColumn;
DevExpress.Data.ColumnSortOrdersortOrder;
this.ASPxGridView1.SettingsBehavior.AllowSort=true;
if(sortType=="Desc")
{
sortOrder=DevExpress.Data.ColumnSortOrder.Descending;
}
else
{
sortOrder=DevExpress.Data.ColumnSortOrder.Ascending;
}
if(sortColumn!=null)
{
this.ASPxGridView1.ClearSort();//清除以前的排序栏位
sortDataColumn=this.ASPxGridView1.Columns[sortColumn] as GridViewDataColumn;
this.ASPxGridView1.SortBy(sortDataColumn,sortOrder);//执行排序
}
}
直接操作GridViewDataColumn排序
调用GridViewDataColumn.SortAscending()方法正向排序
调用GridViewDataColumn.SortDescending()方法逆向排序
使用GetSortedColumns方法取排序栏位
语法:System.Collections.ObjectModel.ReadOnlyCollection<GridViewDataColumn>GetSortedColumns()
示例:
System.Collections.ObjectModel.ReadOnlyCollection<GridViewDataColumn>sortedColumnList=this.ASPxGridView1.GetSortedColumns();
StringBuilder msg=new StringBuilder();
for(inti=0;i<sortedColumnList.Count;i++)
{
msg.Append(sortedColumnList[i].FieldName);
}
string js="alert('"+msg.ToString()+"')";
ScriptManager.RegisterClientScriptBlock(this,this.GetType(),"GetSortedColumns",js,true);//在客户端执行脚本