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

只有在<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学习网 的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!

时间: 2024-08-29 09:13:45

11.从客户端与服务器端实现AspxGridView分组的相关文章

7.从客户端与服务器端定位AspxGridView数据

一.从客户端定位数据:1.将焦点转移到编辑行的指定列(1)调用SetFocusedRowIndex设置焦点行function SetFocusedRowIndex(visibleIndex : int);调用SetFocusedRowIndex方法后将触发FocusedRowChanged事件 (2)调用FocusEditor方法将焦点转移到编辑行的指定列语法1:FocusEditor(ASPxClientGridViewColumn column);语法2:FocusEditor(int co

C/S模型:TCP,UDP构建客户端和服务器端(BIO实现

Java中提供了socket编程来构建客户端和服务器端 TCP构建服务器端的步骤:(1)bind:绑定端口号(2)listen:监听客户端的连接请求(3)accept:返回和客户端连接的实例(4)read/write:进行读写操作,也就是和客户端进行交互(5)close:关闭资源Java中提供了ServiceSocket关键字来构建服务器,在Java中listen和accept合并为一个accept操作,下面通过代码演示一下这5个步骤 public class Server { public s

PostgreSQL编码格式:客户端服务器、客户端、服务器端相关影响

刚刚写了几百字的东西因为断网,导致全没有了,重头再写,我就只想记录东西我自己看了: 1)客户端编码格式默认是从客户端的服务器编码获取,也就是LANG环境变量. 2)客户端编码和服务器编码如果一致,则插入的数据之间不经过转码,存入服务器. 3)客户端编码和服务器编码如果不一致,则插入的数据会传输到服务器端,并进行自动转码,存入数据库服务器. 4)如果服务器端传过来的数据,本地编码对应的字符集不支持中文,那么也就不能显示,即使编码转换是正确的. 那么就有如下这种情况: 当我一开始使用UTF8插入数据

在vs code中使用ftp-sync插件实现客户端与服务器端代码的同步

在vs code中使用ftp-sync插件实现客户端与服务器端代码的同步 下载安装 vscode-ftp-sync 插件. 安装方法1. Ctrl+Shift+P 输入 ext install [插件关键字/名称] 安装方法2. Ctrl+Shift+P (或F1) 输入 Extensions, 选中 Install Extension然后输入插件名称/关键字 若安装不在插件商店的插件, 则可以放置到用户目录下的 .vscode/extensions 文件夹中.然后重启 VS Code 即可生效

Android中客户端请求服务器端的方式讲解(一)附源码

Android中客户端请求服务器端的两种方式:Post方式和Get方式 在这里不直接赘述了,直接上源码如下: (1).Post的方式: /** * Post的请求方式 * * @param model * 请求序号 * @param paramList * 客户端请求的数据参数列表 * @return */ public JSONObject doPost(int model, List<NameValuePair> paramList) { try { // 客户端向服务器发送请求的数据 L

浅析Java web程序之客户端和服务器端交互原理(转)

转载自http://www.cnblogs.com/lys_013/archive/2012/05/05/2484561.html 1. 协议 a. TCP/IP整体构架概述 TCP/IP协议并不完全符合OSI的七层参考模型.传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务. 该模型的目的是使各种硬件在相同的层次上相互通信.这7层是:物理层.数据链路层.网路层.传输层.话路层.表示层和应用层.而TCP/IP通讯协议采用 了4层的层级结构,每一层都呼叫它

android客户端向服务器端验证登陆方法的实现1

遇到的问题:一个条件查询与多个条件查询,所用到的方式不一样 参考文档: http://www.oschina.net/question/1160609_133366    mybatis多条件查询的一个错误 解决方案如下: 利用序列号的方式解决多个参数的查询问题.对象与数据库关系的映射层. 层次结构如下: 首先定义model层里面的Userlist类,这是和我们后台mysql里面的表是一一对应的,然后定义UserlistMapper类,这个类主要是用来封装一些个方法,比如说增删改查等.其实现通过

Explorer : 发布一个key-value存储系统,带有客户端和服务器端

Explorer 一个key-value存储系统,带有客户端和服务器端.使用非常方便. 使用B+树作为存储引擎,客户端和服务器端使用TCP协议进行通信. 代码采用C++实现,底层将客户端和服务器通信封装成了一个网络库,里面还有些还不错的实现可供看看,比如线程池.工作队列.Reactor设计模式实现等等. 项目地址:https://github.com/zinx2016/Explorer (欢迎大家给star  :) 编译方式 make 例子 首先启动服务器程序: 然后,运行客户端程序 : 首先,

Android客户端和服务器端数据交互

网上有很多例子来演示Android客户端和服务器端数据如何实现交互不过这些例子大多比较繁杂,对于初学者来说这是不利的,现在介绍一下代码最简单.逻辑最清晰的交互例子: 一.服务器端: 二.Android手机客户端: