2024年4月4日发(作者:)
使用DevExpress GridControl实现复合表头并绑定数据
作者:泪沉大海
一.新建项目(新建一个窗体)
二.将GridControl控件拖进窗体中
三.修改参数与设置属性(这一步非常关键)
1).设置GridControl的内置视图(view)为BandedGridView或者AdvBandedGridView
2).内置视图转换后得到的数据表格样式会和原始的有所不同:
3).点击“Run Designer”按钮进入设计界面:
4).去掉数据表格上方的“Drag a column header here to group by that column”,一般这句
话可要可不要,但是它的存在对美观有一定的影响,我们就把它去除,在设计界面中找
到view选项卡,点击需要修改的视图,找到内置对象OptionsView,将其中的
ShowGroupPanel改为False:
5).设置需要展示出来的数据列,选中Columns选项卡:
点击添加按钮进行列的添加:(增加5个需要显示的列:姓名,性别,小学,初中,高
中):
点击
点击
点击
点击
点击
表示在最后一列之后新增一列
表示在选中的列前方新增一列
表示移除选中的列
表示将选中的列上移
表示将选中的列下移
配置属性参数:
选中其中的一个列,选中Column properties选项卡,其中需要重点注意的有以下3个
属性:Caption:所显示的文字描述,FieldName:绑定的字段名称(与需要绑定的对象中
的字段名称一一对应,严格区分大小写),(Name):别名,这个列的别名,也可以理解
成这一个列的对象名,可改可不改,如果需要对这一列进行动态操作的话就需要改一下,
改成容易识别和记忆的就可以了。
上面的设置完毕之后点击Column option选项卡,进行下一步设置:
这里需要注意的是AllowSize属性设为False,表示允许列的尺寸修改,默认是True
FixedWidth属性设为True,表示可以修改拖动列的宽度,设为True后将不能拖动改变
宽度,默认是False
6).设置绑定列:
点击Bands选项卡,点击Add New Band……按钮,就会在上方出现绑定列,之前我们
新增了5列,由于我们需要设置复合表头,那么我们将之前的5列中的3列归类在一个
列下形成复合表头,那么这里绑定列就需要设置6列:
接下来我们修改绑定列的属性:
修改列显示名称:选中需要修改的列,找到属性卡中的Caption,对其值进行修改:
修改其宽度:一个是显示宽度,一个是最小宽度,有些不需要改变宽度的列,就需要把
显示宽度和最小宽度设置成同一个值
我们注意到一个现象,列显示的文字没有居中,怎么办呢?接下来需要设置列文字居中
显示:
选中需要修改的列,在属性卡中找到AppearanceHeader属性,找到其中的TextOptions
属性,对其中的HAlignment属性修改为Center
7).以上操作是对列的基本设置,我们对剩下的列进行一一设置,这里就不具体一个一
个的讲了,因为步骤都是一样的,需要注意的是列宽问题,下面介绍一下如何实现复合
表头
从这里我们可以看出,小学、初中、高中应该是包含在学历这一个列里面的,下面就需
要将这些列归拢在学历这一列下,如何操作呢?选中需要被合并的列,这里以小学为例,
将其拖拽到学历这一列下面,注意拖拽的时候会出现两个箭头,这两个箭头就是指示这
一列要拖拽到什么地方:
值得注意的是出现的那两个箭头,横向箭头表示你现在拖动的这一列要放在那一列之下,
纵向箭头表示你现在拖动的这里一列要放在那一列之后或者之前:
同理我们将剩下的拖进去:
8).通过上面几个步骤,我们把复合表头已经设计完毕,下面我们需要把字段(列)绑定在
绑定列上:
点击Show columns selector按钮将会弹出一个小对话,我们会发现,这个小对话框中的
字段就是刚才我们新增并设置的那几个Column:
9).将这些字段拖到需要绑定的列下方
绑定完毕,这里绑定的数据列就是整个数据表格绑定的对象中的字段
10).我们发现一个问题,列名是居中了,但是绑定的数据没有居中,那就需要来设置数
据也居中,回到Columns选项卡,选中需要居中的数据列,更改AppearanceCell属性中
的TextOption属性中的HAlignment改为Center既可让数据居中:
11).查看效果:
我们看到列名居中了,数据也居中了,那么问题又来了,中间那一行:
红框中的这一行是用来做咩的呀?实际上这一行是用来提示开发者这一行所绑定的列
是那一列,需要显示什么数据,但是没有实际的用途,我们就需要把它隐藏,设置以下
步骤就可以隐藏这一行:
四.到此为止绑定设置完毕,下面我们需要填充数据
在表格设计的时候我们设置了5列,那么数据绑定就需要至少这个对象中包含这5个字
段,这个数据的来源我们可以自己通过业务类来,也可以通过数据库中的数据表来,这
里我们用业务类,然后将这个业务封装成List,让整个数据表格的数据源指向这个List
即可:
添加一个叫做Persons的业务类,其中添加这5个字段:
需要特别注意,这里的5个字段的字段名要和Column设置的时候FieldName一一对应,
严格区分大小写,否则数据将不会被绑定,也不会被显示
模拟数据(生成数据):
最后一行表示数据源绑定
五.运行程序查看效果:
六.其他设置:
设置隔行变色:
设置默认第一行不选中、设置单元格第一个不选中、设置表格最前方第一列空白列不显
示:
这样一个复合表头的例子就做完了,大家注意到了没有,小学这一列没有显示,就是因
为Persons类中的字段名称没有和对应的FieldName值对应,修改后的效果;
由于DevExpress GridControl支持很多种使用特效,例如表格中有选择框,有文本框,
有按钮,有下拉列表等等特效控件的设置,这里就不做一一介绍,等用到了在详细介绍,
本文只是针对复合表头做介绍,如果有什么介绍的不到位的地方请大家给我指出,我将
一一改进。
联系方式:QQ996028025


发布评论