我知道这方面还有很多其他的话题。事实上,这就是我能够从其他人发布的一些示例代码开始的方式,然后根据我的需要调整它。我的问题是我无法让表头始终居中。
#TableHeaderFixed {
position:fixed;
margin:0 auto 0 auto;
top:0px;
width:900px;
display:none;
}
不用担心我的 javascript 处理的“显示:无”将其带入和不可见。我一直在尝试阅读并查看“margin”参数是否与“top”参数冲突。这是关键:我可以删除边距参数。但我无法删除顶部,或将其更改为其他任何内容,我的 javascript 依赖于它。是的,它需要固定位置。糟透了,但这就是我必须解决的问题。我已经尝试过使用
top:0
left:50%
margin-left:-250px
左边会将它居中,然后左边的边距是弥补一半宽度以将其带回来,但这不起作用。再次,margin-left 似乎与 left 冲突,就像我之前提到的 top 如何与 margin 冲突一样,因为 margin 命令从不工作,所以它偏离了中心。
如果您需要更多详细信息,请告诉我。
添加在:
<asp:Table ID="UnitList2" runat="server" />
<asp:Table ID="TableHeaderFixed" runat="server" />
.
<script type="text/javascript">
var tableOffset = $("#UnitList2").offset().top;
var $header = $("#UnitList2 > thead").clone();
var $fixedHeader = $("#<%= TableHeaderFixed.ClientID %>").append($header);
$(window).bind("scroll", function () {
var offset = $(this).scrollTop();
if (offset >= tableOffset && $fixedHeader.is(":hidden")) {
$fixedHeader.show();
}
else if (offset < tableOffset) {
$fixedHeader.hide();
}
});
.
<style>
#TableHeaderFixed {
position:fixed;
margin:0 auto 0 auto;
top:0px;
width:900px;
display:none;
}
</style>
因此,您可以看到它是 Javascript,它复制了 UnitList2 表标题,然后在您滚动超出实际标题时使其可见,而在您向上滚动时不可见。
服务器端样式
TableHeaderFixed.Width = "900"
TableHeaderFixed.Attributes.CssStyle.Add("margin-top", "0px")
TableHeaderFixed.Attributes.CssStyle.Add("margin-left", "auto")
TableHeaderFixed.Attributes.CssStyle.Add("margin-right", "auto")
TableHeaderFixed.CellPadding = "2"
TableHeaderFixed.CellSpacing = "0"