(一). 概述
1. 实现GridView表头固定表体滚动效果
2. 继承GridView的所有功能, 增加扩展功能, 表体滚动功能; 不需要另外加辅助滚动控件, 如<DIV>.
3. 支持多行表头滚动, 此控件能够自动检测到使用者增加的表头的行数. 准确的实现表头滚动.
有增加GridView多表头实现方案, 请看[多表头自定义控件].
(二). 运行如图
(三). 用法
1. 将GridViewExpendHeader控件Dll添加引用到Web站点工程中
2. 从工具箱拖动一个GridViewExpendHeader控件到设计器中
3. 设置GridViewExpendHeader控件的属性.
a. 设置属性窗口中新增的 "扩展" 类别中的两个属性, 这两个属性是指滚动区域的大小, 如下图所示:
b. 设置GridView本身的高度Height, 这个高度是指滚动区域内的GridView的实际高度, 这个高度数值设置
要大于ScrollHeight滚动条才能够呈现. 简单地说, 本自定义控件自动会实现一个GridView(自己)
的父控件<DIV>, 然后再把自己放在里面, 如果自己高度小于<DIV>高度了, 不用滚动就能够显示
全自己的数据, 滚动条就没有呈现的意义了. 这里讲得有点啰嗦. .
4. F5运行即可
(四). 完整代码
1. 主控件GridViewFixedMultiHeader类代码
2 /// Author: [ ChengKing(ZhengJian) ]
3 /// Blog: Http: // blog.csdn.net / ChengKing
4 /// Date : 2007 / 4 / 3
5 /// </ summary >
6 /// < summary >
7 /// 主控件类, 继承GridView的所有功能
8 /// </ summary >
9 [ToolboxData( " <{0}:GridViewExpendHeader runat=server></{0}:GridViewExpendHeader> " )]
10 public class GridViewFixedMultiHeader : GridView
11 {
12 [Description( " 当需要重新构造Header时触发此事件 " )]
13 public event System.EventHandler RebuildHeader;
14
15 private System.Web.UI.WebControls.Panel pnlScroll = new System.Web.UI.WebControls.Panel();
16
17 #region 扩展
18 /// < summary >
19 /// 设定滚动容器的宽度
20 /// </ summary >
21 [Bindable( true )]
22 [Category( " 扩展 " )]
23 [DefaultValue( " 500px " )]
24 [Localizable( true )]
25 [TypeConverter( typeof (UnitConverter))]
26 public Unit ScrollWidth
27 {
28 get
29 {
30 return pnlScroll.Width;
31 }
32 set
33 {
34 pnlScroll.Width = value;
35 }
36 }
37
38 /// < summary >
39 /// 设定滚动容器的高度
40 /// </ summary >
41 [Bindable( true )]
42 [Category( " 扩展 " )]
43 [DefaultValue( " 150px " )]
44 [Localizable( true )]
45 [TypeConverter( typeof (UnitConverter))]
46 public Unit ScrollHeight
47 {
48 get
49 {
50 return pnlScroll.Height;
51 }
52 set
53 {
54 pnlScroll.Height = value;
55 }
56 }
57 #endregion
58