码迷,mamicode.com
首页 > Web开发 > 详细

11.从客户端与服务器端实现AspxGridView分组

时间:2015-06-19 16:44:21      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:

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}中间会自动显示括号。

只有在<GroupSummary >标签中定义了汇总方式才会在显示其汇总文本。
示例:

<GroupSummary >
<dxwgv:ASPxSummaryItem FieldName="OCCDatetime" SummaryType="Count" / >            
</GroupSummary >


(2) Setting.ShowGroupedColumns用来设置是否显示已分组的栏位。默认为true。
(3) Setting.ShowGroupedButtons用来设置是否显示分组展开按钮(+)。默认为true。
(4) Setting.ShowGroupFooter用来设置分组页脚显示模式(GridViewGroupFooterMode枚举型)。默认为Hidden。可取值:Hidden、VisibleAlways、VisibleIfExpanded。
Hidden--不显示
VisibleAlways--一直显示
VisibleIfExpanded--只有展开时才显示

(5)分组数据间隔。GroupInterval属性。
示例:
<Settings GroupInterval="DateYear" / >
GroupInterval可赋如下值:Alphabetical、Date、DateMonth、DateRange、DateYear、Default、DisplayText、Value。

5.按分组值进行排序示例:

this.ASPxGridView1.GroupSummarySortInfo.Clear();
this.ASPxGridView1.GroupSummarySortInfo.AddRange(new ASPxGroupSummarySortInfo("OCCDatetime", this.ASPxGridView1.GroupSummary["OCCDatetime"], ColumnSortOrder.Ascending));


二、从客户端实现数据分组
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;

三、用户拖动栏位到分组带实现分组
首先需要显示分组带:
设置是否显示分组带<Settings ShowGroupPanel="True" / >
使用鼠标将栏位拖动到分组带即可实现即时分组。将分组栏位拖回题头则取消分组。

来源:.net学习网
说明:所有来源为 .net学习网 的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!

11.从客户端与服务器端实现AspxGridView分组

标签:

原文地址:http://www.cnblogs.com/xumingyang/p/4589051.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!