zoukankan
html css js c++ java
纯脚本搞掂DataGrid表表头不动,表身滚动。(转自THIN(仁与渣))
先看效果:
孟子以前也做过这事,不过他的方法前台后台都要弄,还是VB的(^-^),好像也不支持像我的自动生成列的DataGrid,所以还是自己动手,纯脚本搞掂,其实很简单,就几行:
function
ScrollDataGrid()
{
var
tb
=
document.getElementById(
"
tbHeader
"
);
var
dg
=
document.getElementById(
"
dgSearchResult
"
);
if
(dg
!=
null
)
{
var
dv
=
document.getElementById(
"
dvBody
"
);
var
th
=
dg.rows[
0
];
for
(
var
i
=
0
; i
<
th.cells.length;i
++
)
th.cells[i].width
=
th.cells[i].clientWidth;
var
tr
=
th.cloneNode(
true
);
//
tr.applyElement(tb);
tb.createTHead();
var
tbh
=
tb.tHead;
tbh.appendChild(tr);
tr
=
tbh.rows[
0
];
var
td
=
tr.insertCell();
td.style.width
=
19
;
td.width
=
19
;
td.innerHTML
=
tr.cells[
0
].innerHTML;
th.style.display
=
'none';
if
(dg.scrollHeight
<
300
)
dv.style.height
=
dg.scrollHeight
*
1
+
2
;
}
<
table
width
="100%"
border
="0"
id
="tbHeader"
cellpadding
="4"
cellspacing
="0"
>
</
table
>
<
div
style
="OVERFLOW-Y: scroll; HEIGHT: 300px"
id
="dvBody"
>
<
asp:datagrid
id
="dgSearchResult"
style
="BORDER-COLLAPSE: collapse"
runat
="server"
Width
="100%"
CellPadding
="4"
DataKeyField
="编号"
BorderWidth
="1px"
BorderStyle
="Solid"
BorderColor
="RoyalBlue"
GridLines
="None"
>
<
SelectedItemStyle
ForeColor
="SlateGray"
></
SelectedItemStyle
>
<
ItemStyle
VerticalAlign
="Middle"
></
ItemStyle
>
<
HeaderStyle
HorizontalAlign
="Center"
></
HeaderStyle
>
<
Columns
>
<
asp:ButtonColumn
Text
="选择"
HeaderText
="<font face=webdings>6</font>"
CommandName
="Delete"
>
<
HeaderStyle
Wrap
="False"
Width
="40px"
></
HeaderStyle
>
<
ItemStyle
Wrap
="False"
HorizontalAlign
="Center"
></
ItemStyle
>
<
FooterStyle
Wrap
="False"
></
FooterStyle
>
</
asp:ButtonColumn
>
</
Columns
>
</
asp:datagrid
></
div
>
发表于 2005-05-27 17:04 THIN(仁与渣)
其实使用Style-Expression更简单
<style>
TD.lockedhead { POSITION: relative; ; TOP: expression(lockhead(this)) }
</style>
<script language="javascript">
function lockhead(cell)
{
var table=cell.parentElement.parentElement;
while(table&&table.tagName.toLowerCase()!="table")
table=table.parentElement;
var _div=table.parentElement;
return _div.scrollTop+(cell.parentElement.rowIndex)*(parseInt(table.border)+parseInt(table.cellSpacing)-1);
}
</script>
<script language="javascript">
function LockHead(table,cnt)
{
if(table&&table.rows.length>=cnt)
{
for(k=0;k<cnt;k++)
{
for(i=0;i<table.rows[k].cells.length;i++)
{
table.rows[k].cells[i].className="lockedhead";
}
}
}
}
LockHead(Form1.all.DataGrid1,1);
</script>
这个是使用CodeProject上的一个版本:
这个是css:
.DataGridFixedHeader {
position: relative;
top: expression(this.offsetParent.scrollTop);
background-color: blue
}
这个是应用:
...
<HeaderStyle Font-Bold="True" CssClass="ms-formlabel DataGridFixedHeader" BackColor="#80AFEF">
</HeaderStyle>
...
原文:
http://www.cnblogs.com/thinhunan/archive/2005/05/27/163704.html
查看全文
相关阅读:
中国的网游,发人深省
.NET开源Bug管理软件BugTracker.NET使用小记
开源的学术论文排版软件TeX简介
在sqlplus中批量执行sql命令
DotNetBar中ExpandableSplitter使用技巧
上传一很酷的黑色背景.vssettings文件
瑞雪兆丰年2008年的第一场雪
Oracle用Start with...Connect By子句递归查询
【转载】Making new features with topology tools(ArcInfo and ArcEditor only)
Geoprocess Execute出错原因?Vb+AE9.2
原文地址:https://www.cnblogs.com/dagon007/p/165356.html
最新文章
招聘
网络抓包分析方法大全
Android系统服务WindowManager
android 5.0
Debian
home
Ubuntu
activity 设置 多个格式
网站优化
cocos2d
热门文章
全屏view 状态栏 高度
android 权限
退出Activity
vcenter安装要求。
【转载】About topology
商业周刊:Facebook为何价值100亿美元(转)
转:VS.NET2005安装部署[繁体图文并茂]
经原作者修复的geos项目makefile
Accessing tools within a VB6 program AE中使用VB调用Geoprocessing
堆和栈的区别(收集)
Copyright © 2011-2022 走看看
<style>
TD.lockedhead { POSITION: relative; ; TOP: expression(lockhead(this)) }
</style>
<script language="javascript">
function lockhead(cell)
{
var table=cell.parentElement.parentElement;
while(table&&table.tagName.toLowerCase()!="table")
table=table.parentElement;
var _div=table.parentElement;
return _div.scrollTop+(cell.parentElement.rowIndex)*(parseInt(table.border)+parseInt(table.cellSpacing)-1);
}
</script>
<script language="javascript">
function LockHead(table,cnt)
{
if(table&&table.rows.length>=cnt)
{
for(k=0;k<cnt;k++)
{
for(i=0;i<table.rows[k].cells.length;i++)
{
table.rows[k].cells[i].className="lockedhead";
}
}
}
}
LockHead(Form1.all.DataGrid1,1);
</script>
这个是使用CodeProject上的一个版本:
这个是css:
.DataGridFixedHeader {
position: relative;
top: expression(this.offsetParent.scrollTop);
background-color: blue
}
这个是应用:
...
<HeaderStyle Font-Bold="True" CssClass="ms-formlabel DataGridFixedHeader" BackColor="#80AFEF">
</HeaderStyle>
...
原文:http://www.cnblogs.com/thinhunan/archive/2005/05/27/163704.html