asp.net gridview已实现固定表头 列宽错位求指教

driverin 2014-02-21 11:44:36
gridview的固定表头参考的孟子E章同志的js控制,代码如下
<script type="text/javascript">
function s() {
var t = document.getElementById("<%=gv人事基本档案.ClientID%>");
var t2 = t.cloneNode(true)
for (i = t2.rows.length - 1; i > 0; i--)
t2.deleteRow(i)
t.deleteRow(0)
document.getElementById("a").appendChild(t2)
}
window.onload = s
</script>


后台添加控制 this.gv人事基本档案.Attributes.Add("style", "table-layout:fixed");


实现固定表头,效果如下
...全文
525 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
driverin 2014-02-27
  • 打赏
  • 举报
回复
引用 10 楼 dotnetstudio 的回复:
宽度有两种设置方法,一种是按百分比,一种是按像素。你两种都试试,如果高度是可以的,那宽度肯定可以。
大哥,我都试过了,没有用,孟子的这种固定表头的方法,我实在搞不懂那段Js到底什么意思?是如何生成一行表格的
driverin 2014-02-26
  • 打赏
  • 举报
回复
引用 8 楼 dotnetstudio 的回复:
你是用的asp:GridView吗,如果是,那么会列头和下面的数据的列宽要分开设置,只要设置列头的样式就可以了,余下的就是在后台进行绑定数据,怎么都不会出现你那样错位的情况。
可是按照孟子的这个固定表头的写法,用遍历的方法获取gridview的第一行值,但是我没弄明白生成的这一行值是怎么选择他的样式的,因为headerstyle只对他的行高度有效,宽度无效
KeepSayingNo 2014-02-26
  • 打赏
  • 举报
回复
宽度有两种设置方法,一种是按百分比,一种是按像素。你两种都试试,如果高度是可以的,那宽度肯定可以。
by_封爱 2014-02-21
  • 打赏
  • 举报
回复
http://www.darkthread.net/MiniAjaxLab/ScrollTable/ 看下这个 里面有对应的js以及css下载下来 我用了好久 很不错的 固定表头 固定列 都可以
md5e 2014-02-21
  • 打赏
  • 举报
回复
应该是工号这一列没有设置宽度
driverin 2014-02-21
  • 打赏
  • 举报
回复
固定表头效果还行,可是调整列宽时问题就来了,因为上面的DIV装着gridview的第一行,所以我用 <ItemStyle Width="18px" /> 这样控制工号那一列的列宽,结果下面调整了,上面还是那个样子
driverin 2014-02-21
  • 打赏
  • 举报
回复
KeepSayingNo 2014-02-21
  • 打赏
  • 举报
回复
你是用的asp:GridView吗,如果是,那么会列头和下面的数据的列宽要分开设置,只要设置列头的样式就可以了,余下的就是在后台进行绑定数据,怎么都不会出现你那样错位的情况。
md5e 2014-02-21
  • 打赏
  • 举报
回复
引用 5 楼 u011114896 的回复:
[quote=引用 3 楼 liuchaolin 的回复:] 应该是工号这一列没有设置宽度
你对比一下上下两幅图,下面那一副是我设置了的,但是下面的宽度变了,可是表头不变
 <asp:BoundField DataField="工号" HeaderText="工号" ReadOnly="True" SortExpression="工号"     >
                                                    <ControlStyle Width="10px" />
                                                    <ItemStyle Width="18px" />
                                                    </asp:BoundField>
[/quote] 一般talbe默认是和title(第一个tr,的td宽度对应的),当你的title失去作用时,你就查找第一个起作用的tr的td,不懂你是否懂18px的宽度是多长,你应该参照正常值来设置
driverin 2014-02-21
  • 打赏
  • 举报
回复
引用 4 楼 diaodiaop 的回复:
http://www.darkthread.net/MiniAjaxLab/ScrollTable/ 看下这个 里面有对应的js以及css下载下来 我用了好久 很不错的 固定表头 固定列 都可以
谢谢啊,但是表头我已经固定了,现在就是想解决一下列宽的问题
driverin 2014-02-21
  • 打赏
  • 举报
回复
引用 3 楼 liuchaolin 的回复:
应该是工号这一列没有设置宽度
你对比一下上下两幅图,下面那一副是我设置了的,但是下面的宽度变了,可是表头不变
 <asp:BoundField DataField="工号" HeaderText="工号" ReadOnly="True" SortExpression="工号"     >
                                                    <ControlStyle Width="10px" />
                                                    <ItemStyle Width="18px" />
                                                    </asp:BoundField>

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧