欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » AspxGridView使用教程 » 正文

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

创建时间:2011年11月29日 17:24  阅读次数:(11270)
分享到:
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学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf】

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 41+44=? 的结果(结果是:85)
结  果: