过江的博客
随笔 - 159 文章 - 1 评论 - 202
博客园
首页
新随笔
管理
订阅
在ASP.NET页面中冻结DataGrid的列或头部
写在前面:在asp.net页面中,有时候我们需要冻结datagrid中的某一列,比如显示的数据项过多时,我们需要让第一列不动,拖动横向滚动条时其他列隐藏,这时就需要冻结列了;另外,有时候也需要让datagrid的头部不动,拖动纵向滚动条时,下面的数据项可以滚动。在实现的过程中,其实就是用了css样式来控制,一起看一下。
一.冻结某一列:
1
<%
@ Page language
=
"
c#
"
Codebehind
=
"
WebForm1.aspx.cs
"
AutoEventWireup
=
"
false
"
Inherits
=
"
WebDataGridColumn.WebForm1
"
%>
2
<!
DOCTYPE HTML PUBLIC
"
-//W3C//DTD HTML 4.0 Transitional//EN
"
>
3
<
HTML
>
4
<
HEAD
>
5
<
title
>
WebForm1
</
title
>
6
<
meta name
=
"
GENERATOR
"
Content
=
"
Microsoft Visual Studio .NET 7.1
"
>
7
<
meta name
=
"
CODE_LANGUAGE
"
Content
=
"
C#
"
>
8
<
meta name
=
"
vs_defaultClientScript
"
content
=
"
JavaScript
"
>
9
<
meta name
=
"
vs_targetSchema
"
content
=
"
http://schemas.microsoft.com/intellisense/ie5
"
>
10
<!--
要冻结哪一列,就把fixCol这个CSS加到HeaderStyle
-
CssClass和ItemStyle
-
CssClass
-->
11
<
style type
=
"
text/css
"
>
12
.fixCol
{}
{ ; LEFT: expression(
this
.offsetParent.scrollLeft); POSITION: relative }
13
</
style
>
14
</
HEAD
>
15
<
body
>
16
<
form id
=
"
Form1
"
method
=
"
post
"
runat
=
"
server
"
>
17
<
TABLE id
=
"
Table1
"
cellSpacing
=
"
1
"
cellPadding
=
"
1
"
width
=
"
80%
"
border
=
"
0
"
align
=
"
center
"
>
18
<
TR
>
19
<
TD height
=
"
50
"
align
=
"
center
"
>
20
<
asp:Label id
=
"
Label1
"
runat
=
"
server
"
Font
-
Bold
=
"
True
"
ForeColor
=
"
Red
"
Font
-
Size
=
"
X-Large
"
>
DataGrid冻结列或头部的例子
</
asp:Label
></
TD
>
21
</
TR
>
22
<
TR
>
23
<
TD align
=
"
center
"
>
24
<
asp:DataGrid id
=
"
DataGrid1
"
runat
=
"
server
"
BorderColor
=
"
#CC9966
"
BorderStyle
=
"
None
"
BorderWidth
=
"
1px
"
25
BackColor
=
"
White
"
CellPadding
=
"
4
"
AutoGenerateColumns
=
"
False
"
Width
=
"
805px
"
>
26
<
SelectedItemStyle Font
-
Bold
=
"
True
"
ForeColor
=
"
#663399
"
BackColor
=
"
#FFCC66
"
></
SelectedItemStyle
>
27
<
ItemStyle ForeColor
=
"
#330099
"
BackColor
=
"
White
"
></
ItemStyle
>
28
<
HeaderStyle Font
-
Bold
=
"
True
"
ForeColor
=
"
#FFFFCC
"
BackColor
=
"
#990000
"
></
HeaderStyle
>
29
<
FooterStyle ForeColor
=
"
#330099
"
BackColor
=
"
#FFFFCC
"
></
FooterStyle
>
30
<
Columns
>
31
<
asp:BoundColumn DataField
=
"
LastName
"
HeaderText
=
"
姓名
"
>
32
<!--
下面就是冻结列
-->
33
<
HeaderStyle CssClass
=
"
fixCol
"
></
HeaderStyle
>
34
<
ItemStyle CssClass
=
"
fixCol
"
></
ItemStyle
>
35
</
asp:BoundColumn
>
36
<
asp:BoundColumn DataField
=
"
Title
"
HeaderText
=
"
标题
"
></
asp:BoundColumn
>
37
<
asp:BoundColumn DataField
=
"
BirthDate
"
HeaderText
=
"
出生日期
"
></
asp:BoundColumn
>
38
<
asp:BoundColumn DataField
=
"
Address
"
HeaderText
=
"
家庭住址
"
></
asp:BoundColumn
>
39
</
Columns
>
40
<
PagerStyle HorizontalAlign
=
"
Center
"
ForeColor
=
"
#330099
"
BackColor
=
"
#FFFFCC
"
></
PagerStyle
>
41
</
asp:DataGrid
></
TD
>
42
</
TR
>
43
</
TABLE
>
44
</
form
>
45
</
body
>
46
</
HTML
>
47
二.冻结头部:
1
<%
@ Page language
=
"
c#
"
Codebehind
=
"
WebForm1.aspx.cs
"
AutoEventWireup
=
"
false
"
Inherits
=
"
WebDataGridColumn.WebForm1
"
%>
2
<!
DOCTYPE HTML PUBLIC
"
-//W3C//DTD HTML 4.0 Transitional//EN
"
>
3
<
HTML
>
4
<
HEAD
>
5
<
title
>
WebForm1
</
title
>
6
<
meta name
=
"
GENERATOR
"
Content
=
"
Microsoft Visual Studio .NET 7.1
"
>
7
<
meta name
=
"
CODE_LANGUAGE
"
Content
=
"
C#
"
>
8
<
meta name
=
"
vs_defaultClientScript
"
content
=
"
JavaScript
"
>
9
<
meta name
=
"
vs_targetSchema
"
content
=
"
http://schemas.microsoft.com/intellisense/ie5
"
>
10
<!--
把fixTitle这个CSS加到DataGrid的HeaderStyle
-
CssClass和ItemStyle
-
CssClass
-->
11
<
style type
=
"
text/css
"
>
12
.fixTitle
{}
{ POSITION: relative; ; TOP: expression(
this
.offsetParent.scrollTop) }
13
</
style
>
14
</
HEAD
>
15
<
body
>
16
<
form id
=
"
Form1
"
method
=
"
post
"
runat
=
"
server
"
>
17
<
TABLE id
=
"
Table1
"
cellSpacing
=
"
1
"
cellPadding
=
"
1
"
width
=
"
80%
"
border
=
"
0
"
align
=
"
center
"
>
18
<
TR
>
19
<
TD height
=
"
50
"
align
=
"
center
"
>
20
<
asp:Label id
=
"
Label1
"
runat
=
"
server
"
Font
-
Bold
=
"
True
"
ForeColor
=
"
Red
"
Font
-
Size
=
"
X-Large
"
>
DataGrid冻结列或头部的例子
</
asp:Label
></
TD
>
21
</
TR
>
22
<
TR
>
23
<
TD align
=
"
center
"
>
24
<
asp:DataGrid id
=
"
DataGrid1
"
runat
=
"
server
"
BorderColor
=
"
#CC9966
"
BorderStyle
=
"
None
"
BorderWidth
=
"
1px
"
25
BackColor
=
"
White
"
CellPadding
=
"
4
"
AutoGenerateColumns
=
"
False
"
Width
=
"
805px
"
>
26
<
SelectedItemStyle Font
-
Bold
=
"
True
"
ForeColor
=
"
#663399
"
BackColor
=
"
#FFCC66
"
></
SelectedItemStyle
>
27
<!--
冻结头部
-->
28
<
ItemStyle ForeColor
=
"
#330099
"
BackColor
=
"
White
"
CssClass
=
"
fixTitle
"
></
ItemStyle
>
29
<
HeaderStyle Font
-
Bold
=
"
True
"
ForeColor
=
"
#FFFFCC
"
BackColor
=
"
#990000
"
CssClass
=
"
fixTitle
"
></
HeaderStyle
>
30
31
<
FooterStyle ForeColor
=
"
#330099
"
BackColor
=
"
#FFFFCC
"
></
FooterStyle
>
32
<
Columns
>
33
<
asp:BoundColumn DataField
=
"
LastName
"
HeaderText
=
"
姓名
"
></
asp:BoundColumn
>
34
<
asp:BoundColumn DataField
=
"
Title
"
HeaderText
=
"
标题
"
></
asp:BoundColumn
>
35
<
asp:BoundColumn DataField
=
"
BirthDate
"
HeaderText
=
"
出生日期
"
></
asp:BoundColumn
>
36
<
asp:BoundColumn DataField
=
"
Address
"
HeaderText
=
"
家庭住址
"
></
asp:BoundColumn
>
37
</
Columns
>
38
<
PagerStyle HorizontalAlign
=
"
Center
"
ForeColor
=
"
#330099
"
BackColor
=
"
#FFFFCC
"
></
PagerStyle
>
39
</
asp:DataGrid
></
TD
>
40
</
TR
>
41
</
TABLE
>
42
</
form
>
43
</
body
>
44
</
HTML
>
45
好了,实现很简单,大家可以试一下,有时候还是挺有用的
^
_
^
注意:大家在运行的时候把DataGrid中的注释去掉,要不会出错
posted on 2006-06-23 16:14
过江
阅读(92)
评论(0)
编辑
收藏
网摘
所属分类:
asp.net2003 C#经典方法
新用户注册
刷新评论列表
标题
姓名
主页
Email
(博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
网站首页
新闻频道
社区
小组
博问
网摘
人才
找找看
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
Google站内搜索
相关文章:
相关链接:
所属分类的其他文章:
WinForm数据验证类 (转)
Oracle视频教程下载地址
弹出层的效果(转)
GridView 72般绝技
asp.net千奇百怪的日历(转)
asp.net利用RAR实现文件压缩解压缩(转)
在ASP.NET中支持断点续传下载大文件(ZT) (转)
如何当个极品单身男人(转)
子页面赋值给父页面的控件方法
简单的FTP应用程序 (转)
最新IT新闻:
应用程序架构指导包2.0 Beta 2发布
推波助澜 微软推出“I'm a PC”商店
火狐中国版正式发布
微软:中国移动全球率先使用IE Mobile 6
消息汇总:迅雷人事变动 员工与公关部说法大相径庭
<
2006年6月
>
日
一
二
三
四
五
六
28
29
30
31
1
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
1
2
3
4
5
6
7
8
与我联系
发短消息
搜索
我的标签
Team Foundation Server
(1)
TFS
(1)
VSTS
(1)
随笔分类
(161)
.net Remoting(9)
Ajax(13)
asp.net2003 C#经典方法(57)
CodeSmith使用实例(13)
EXCEL、WORD与SQL(12)
JavaScript、Css(17)
Log4Net入门介绍(1)
MSMQ(3)
ORM框架使用实例(4)
PowerDesigner
Vs2005 C#(14)
WebService(5)
XSLT、XML(2)
版本管理软件(VSS,SVN等)(4)
单元测试(1)
感悟人生(6)
随笔档案
(159)
2008年10月 (1)
2008年9月 (1)
2008年8月 (1)
2008年5月 (1)
2008年2月 (1)
2007年10月 (1)
2007年9月 (2)
2007年8月 (10)
2007年7月 (17)
2007年6月 (22)
2007年5月 (22)
2007年4月 (26)
2007年3月 (16)
2006年11月 (1)
2006年10月 (5)
2006年9月 (1)
2006年8月 (6)
2006年6月 (25)
积分与排名
积分 - 62090
排名 - 753
最新随笔
1. TFS 安装手册以及常用问题解决方法
2. SQL server 系统优化--通过执行计划优化索引(1) (转)
3. .Net新建、卸载、调试Windows服务
4. 请问在用C#+Mapx开始,怎样根据图元名称获得该图元已经选中的图元
5. C#基础:ref和out的区别
6. 仿163邮箱的alert提示,beta1.1 (转)
7. 好久都没有写东西了
8. 终于用上CodeSmith4.0了,跟大家一起分享
9. XSLT基本语法和第一个实例
10. 扩展TreeView控件(1) - 联动复选框(复选框的全选和取消全选)(转)
最新评论
1. re: 聊天程序(转)
谢谢了
--yfshg