对Dev的GridControl/GridView控件进行分组并展开操作

本文详细介绍了在Dev14.1.3环境下,使用GridControl进行表格分组的操作,包括如何进行最简单的分组,自定义分组名称,以及添加统计信息到分组中。通过设置GroupIndex和利用CustomDrawGroupRow事件,可以实现分组显示和定制化分组头内容。同时,通过添加GridGroupSummaryItem,能够在分组后展示字段统计信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在模块编写中碰到了对表格的分组,特意在这里把它记录下来。

一、背景:Dev14.1.3,GridControl,.NET4.0+C#

二、过程

1、GridControl设计

一共添加4列:在下面主要是对第一和第二列进行操作,根据第一列进行分组,并对第二列进行纵向单元格合并操作;

2、最简单的分组

仅仅根据“离线要素图层”列展示分组结果,分组标题默认使用Dev自带的设置,代码如下:

private void SetGrouping()
        {
            //处理数据源
            PageCtrl_Second();
            MergeDataTables(DsParallel);
            DataColumn dc = new DataColumn("select", typeof(int));
            dc.DefaultValue = 1;
            dtParallel1.Columns.Add(dc);
 
            //将DataTable列绑定到GridControl上
            gc_ClnOffLine.FieldName = dtParallel1.Columns["FeaCls_OffLine"].ColumnName;
            gc_ClnStationseries.FieldName = dtParallel1.Columns["Ss_ID"
### 如何构建 Dev Express GridControl GridView 的数据源 为了实现 `GridControl` 和其子控件 `GridView` 的功能,通常需要为其提供合适的数据源。以下是关于如何构建用于 `Dev Express GridControl GridView` 数据源的具体方法。 #### 1. 使用 DataTable 或 DataSet 绑定到 GridControl 可以创建一个简单的 `DataTable` 将其作为数据源绑定给 `GridControl`[^1]: ```csharp // 创建一个新的 DataTable 实例 System.Data.DataTable dataTable = new System.Data.DataTable(); // 添加列 dataTable.Columns.Add("ID", typeof(int)); dataTable.Columns.Add("Name", typeof(string)); // 填充数据 dataTable.Rows.Add(1, "John Doe"); dataTable.Rows.Add(2, "Jane Smith"); // 将 DataTable 设置为 GridControl 的数据源 gridControl.DataSource = dataTable; ``` 通过上述代码片段,`GridControl` 可以显示来自 `DataTable` 中的内容,自动映射每一列表头名称与字段名一致[^3]。 #### 2. 配置多级嵌套数据结构 当处理复杂对象模型或者多层次关系时,可以通过自定义实体类来表示这些关联绑定至 `GridControl`。例如,在某些情况下可能涉及父子表之间的联动展示,则需特别关注路径配置问题: 假设存在两个类分别代表订单及其详情项: ```csharp public class Order { public int ID { get; set; } public string CustomerName { get; set; } } public class DetailItem { public int ItemID { get; set; } public string ProductName { get; set; } } ``` 如果希望在一个网格中同时呈现主记录以及对应的明细条目,则应调整属性命名以便正确解析导航属性而无需额外指定完整路径。 #### 3. 调整视图行为 (可选) 对于特定需求如隐藏过滤面板等功能可通过如下方式完成设定[^2]: ```csharp ((DevExpress.XtraGrid.Views.Grid.GridView)this.gridControl.MainView).OptionsView.ShowFilterPanelMode = DevExpress.XtraGrid.Views.Base.ShowFilterPanelMode.Never; ``` 以上操作能够有效控制用户界面交互体验从而满足实际应用场景下的定制化要求。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值