可以通过以下方法清除以前的排序栏位。 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==\{
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
System.Collections.ObjectModel.ReadOnlyCollection
StringBuilder msg=new StringBuilder(); for(inti=0;i msg.Append(sortedColumnList[i].FieldName); } string js=\ ScriptManager.RegisterClientScriptBlock(this,this.GetType(),\在客户端执行脚本 11.从客户端与服务器端实现AspxGridView分组 AspxGridView实现数据分组的前提条件: 必须设置ASPxGridViewBehaviorSettings.AllowGroup=true 一、从服务器端实现数据分组 1.使用GroupBy方法实现数据分组 语法1:int GroupBy(GridViewColumn column); 语法2:int GroupBy(GridViewColumn column, int value); 其中参数value表示分组的层次,-1表示取消该栏位的分组。 调用GroupBy方法不会自动清除以前的分组规则,可以调用ClearSort方法或UnGroup方法清除。 下面示例演示了用一个栏位进行分组: this.ASPxGridView1.ClearSort();//清空分组 string columnName = this.ddlGroupColumns.SelectedValue; GridViewColumn col = this.ASPxGridView1.Columns[columnName]; this.ASPxGridView1.GroupBy(col);//分组 下面示例演示了用多个栏位分组: this.ASPxGridView1.ClearSort();//清空分组 this.ASPxGridView1.GroupBy(this.ASPxGridView1.Columns[“Event”]);//分组 this.ASPxGridView1.GroupBy(this.ASPxGridView1.Columns[“Type”]);//分组 2.分组的展开与折叠 (1)使用ExpandAll展开所有分组。 语法:void ExpandAll(); (2)使用ExpandRow展开指定分组行。 语法1:void ExpandRow(int visibleIndex); 语法2:void ExpandRow(int visibleIndex, bool recursive); 参数recursive设置是否启用递归展开分组。 (3)使用CollapseAll折叠所有分组。 语法:void CollapseAll(); (4)使用CollapseRow折叠指定分组行。 语法1:void CollapseRow(int visibleIndex); 语法2:void CollapseRow(int visibleIndex, bool recursive); 参数recursive设置是否启用递归折叠分组。 3.判断分组行是否展开 使用IsRowExpanded方法。 语法:bool IsRowExpanded(int visibleIndex); 4.数据分组的相关设置 (1)Setting.GroupFormat用来设置分组行的数据格式(可读写)。 默认是:{0}:{1}{2}。其中{0}表示分组栏位的标签(Caption属性),{1}表示分组栏位值,{2}表示汇总文本。{1}与{2}中间会自动显示括号。 只有在 (2) Setting.ShowGroupedColumns用来设置是否显示已分组的栏位。默认为true。 (3) Setting.ShowGroupedButtons用来设置是否显示分组展开按钮(+)。默认为true。 (4) Setting.ShowGroupFooter用来设置分组页脚显示模式(GridViewGroupFooterMode枚举型)。默认为Hidden。可取值:Hidden、VisibleAlways、VisibleIfExpanded。 Hidden--不显示 VisibleAlways--一直显示 VisibleIfExpanded--只有展开时才显示 (5)分组数据间隔。GroupInterval属性。 示例: GroupInterval可赋如下值:Alphabetical、Date、DateMonth、DateRange、DateYear、Default、DisplayText、Value。 5.按分组值进行排序示例: this.ASPxGridView1.GroupSummarySortInfo.Clear(); this.ASPxGridView1.GroupSummarySortInfo.AddRange(new ASPxGroupSummarySortInfo(\tetime\ 二、从客户端实现数据分组 1.使用GroupBy方法实现数据分组 语法1:void GroupBy(int columnIndex); 语法2:void GroupBy(ASPxClientGridViewColumn column); 语法3:void GroupBy(string columnFieldNameOrId); 语法4:void GroupBy(string columnFieldNameOrId, int groupIndex); 语法5:void GroupBy(int columnIndex, int groupIndex); 语法6:void GroupBy(ASPxClientGridViewColumn column, int groupIndex); 语法7:void GroupBy(int columnIndex, int groupIndex,string sortOrder); 语法8:void GroupBy(ASPxClientGridViewColumn column, int groupIndex, string sortOrder); 语法9:void GroupBy(string columnFieldNameOrId, int groupIndex, string sortOrder); 2.分组的展开与折叠 (1)使用ExpandAll展开所有分组。 语法: void ExpandAll(); 使用ExpandRow展开指定分组行。 语法1:void ExpandRow(int visibleIndex); 语法2:void ExpandRow(int visibleIndex, bool recursive); 参数recursive:是否递归。 (3)使用CollapseAll折叠所有分组。 语法:void CollapseAll(); (4)使用CollapseRow折叠指定分组行。 语法1:void CollapseRow(int visibleIndex); 语法2:void CollapseRow(int visibleIndex, bool recursive); 3.判断分组行是否展开 使用IsGroupRowExpanded方法。 语法:bool IsGroupRowExpanded(int visibleIndex); 4.判断是分组行还是数据行 (1)判断是否分组行 function IsGroupRow(visibleIndex : int) : bool; (2)判断是否数据行 function IsDataRow(visibleIndex : int) : bool; 三、用户拖动栏位到分组带实现分组 首先需要显示分组带: 设置是否显示分组带 12.在AspxGridView中导出数据 内置数据导出的前提条件 使用DevExpress.Web.ASPxGridView.Export.ASPxGridViewExporter实现数据导出。注意一定要将该控件放在页面上才可。 使用该控件必须引入以下dll文件: DevExpress.Utils.v9.1.dll DevExpress.Web.ASPxGridView.v9.1.Export.dll DevExpress.XtraPrinting.v9.1.dll 在Asp.Net页面注册该控件的代码: <%@ Register Assembly=\Culture=neutral, PublicKeyToken=b88d1754d700e49a\ Namespace=\ <%@ Register Assembly=\PublicKeyToken=b88d1754d700e49a\ Namespace=\ 在Asp.net页面控件声明: 支持的数据导出类型 ASPxGridViewExporter支持导出到Csv、Pdf、Rtf、Excel文件,所对应的方法分别为: 1,WriteCsv(WriteCsvResponse) 2,WritePdf(WritePdfResponse) 3,WriteRtf(WriteRtfResponse) 4,WriteXls(WriteXlsResponse) 在数据导出时通过给ASPxGridViewExporter的GridViewID指定一个AspxGridView控件ID。 例:将所有记录导出到Excel文件 ASPxGridViewExporter1.GridViewID = \ ASPxGridViewExporter1.WriteXlsToResponse(\导出到Excel