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
查看全文
相关阅读:
Flink SQL Client初探
ansible快速部署cassandra3集群
利用TfidfVectorizer进行中文文本分类(数据集是复旦中文语料)
spark读取HDFS目录时报错Failed on local exception: com.google.protobuf.InvalidProtocolBufferException
Spark学习进度-Spark环境搭建&Spark shell
jquery获取select选中的值
java零基础到架构师学习线路(附视频教程)
plsql连接远程oracle数据库
如何在通用异常处理时获取到方法名称(获取注解参数JoinPoint)
java:找不到符号(使用lombok)
原文地址:https://www.cnblogs.com/dagon007/p/165356.html
最新文章
痞子衡嵌入式:解锁i.MXRTxxx上FlexSPI模块自带的地址重映射(Remap)功能
中国 DevOps 社区 & CODING 深圳第九届 Meetup 来啦!
8 月的最后一天,我们摊牌了……
CODING DevOps 代码质量实战系列第二课: PHP 版
CODING DevOps 代码质量实战系列第一课:代码规范与 Git Flow
CODING 仪表盘功能正式推出,实现工作数据可视化!
CODING DevOps 微服务项目实战系列最后一课,周四开讲!
如何实现text起始位置设置背景色
Web页面如何进行可视化埋点(三)
华为智慧金融峰会, HMS Core金融解决方案助力数智金融新生态
热门文章
停车场找不到自己的车停在哪儿?教你开发一款“Find My Car”App
Web | 快速集成华为AGC远程配置
鸿蒙跳转到图库或者文件选择图片并显示到Image控件中
【资料合集】HarmonyOS从入门到大神资料下载合集
华为应用市场AGC研习社游戏课程上新,助力游戏开发者高效分发获量
SSRF服务器端请求伪造
React中JSX的理解
Flink SQL Client综合实战
将CSV的数据发送到kafka(java版)
准备数据集用于flink学习
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