(一). 概述
1. 做了个GridViewExtend自定义控件, 通过注册扩展自定义表头事件, 可以任意设置Header的格式.
2. 易重用代码, 只要将ExtendGridView.dll 文件添加到项目引用即可.
(二). 运行截图
(三). 使用步骤
1. 将ExtendGridView.dll 添加到自己的Web站点中, 并在设计器中添加一个GridViewExpendHeader控件.
2. 注册事件, 如图
3. 在后台代码事件中编写重构GridView's HeaderRow的事件
(四). 完整代码
1. 主控件类GridViewExpend.cs代码
2 /// Author: ChengKing(ZhengJian)
3 /// >/summary<
4 [ToolboxData( " >{0}:GridViewExpendHeader runat=server<>/{0}:GridViewExpendHeader< " )]
5 public class GridViewExpendHeader : GridView
6 {
7 [Description( " 当需要重新构造Header时触发此事件 " )]
8 public event System.EventHandler RebuildHeader;
9
10 protected override void Render(HtmlTextWriter writer)
11 {
12 OnRebuildHeader();
13
14 base .Render(writer);
15 }
16 protected override void CreateChildControls()
17 {
18 base .CreateChildControls();
19 }
20
21 protected virtual void OnRebuildHeader()
22 {
23 // 重新构造Head
24 if (RebuildHeader != null )
25 {
26 RebuildHeaderEventArgs args = new RebuildHeaderEventArgs();
27 args.GridViewObject = this ;
28 args.HeaderRowObject = this .HeaderRow;
29
30 RebuildHeader( this , args);
31 }
32 }
33 }
2. RebuildHeaderEventArgs.cs 文件代码
2 /// 承载重构Header事件所需的参数[Author:ChengKing(ZhengJian)]
3 /// >/summary<
4 public class RebuildHeaderEventArgs : EventArgs
5 {
6 private GridViewExpendHeader _GridViewObject;
7 private GridViewRow _HeaderRowObject;
8
9 /// >summary<
10 /// 存储GrivViewExtend对象本身
11 /// >/summary<
12 public GridViewExpendHeader GridViewObject
13 {
14 get
15 {
16 return _GridViewObject;
17 }
18 set
19 {
20 _GridViewObject = value;
21 }
22 }
23
24 /// >summary<
25 /// 存储GrivViewExtend的HeaderRow对象
26 /// >/summary<
27 public GridViewRow HeaderRowObject
28 {
29 get
30 {
31 return _HeaderRowObject;
32 }
33 set
34 {
35 _HeaderRowObject = value;
36 }
37 }
38 }
3. 页面测试文件: default.aspx文件代码
2 > form id = " form1 " runat = " server " <
3 > div class = " a " <
4 > cc1:GridViewExpendHeader id = " GridViewExpend1 " runat = " server " BackColor = " White " BorderColor = " #3366CC " BorderStyle = " None " BorderWidth = " 1px " CellPadding = " 4 " OnRebuildHeader = " GridViewExpend1_RebuildHeader " <
5 > FooterStyle BackColor = " #99CCCC " ForeColor = " #003399 " /<
6 > RowStyle BackColor = " White " ForeColor = " #003399 " /<
7 > SelectedRowStyle BackColor = " #009999 " Font - Bold = " True " ForeColor = " #CCFF99 " /<
8 > PagerStyle BackColor = " #99CCCC " ForeColor = " #003399 " HorizontalAlign = " Left " /<
9 > HeaderStyle BackColor = " #003399 " Font - Bold = " True " ForeColor = " #CCCCFF " /<
10 > AlternatingRowStyle BackColor = " Lavender " /<
11 >/ cc1:GridViewExpendHeader <
12
13 >/ div <
14 >/ form <
15 >/ body <
4. 后台重构HeaderRow事件代码


2

3

4

5

6

7

8



9

10

11


12

13

14

15

16

17

18

19

20


21

22

23

24

25

26

27

28

29

30

31

32

33

(五). 示例代码下载
http://www.cnblogs.com/Files/MVP33650/ExtendGridViewHeader.rar
(六). 控件开发其它相关文章:
http://blog.youkuaiyun.com/ChengKing/category/288694.aspx
Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=1547665