ASP.NET页面中,有时候我们需要冻结datagrid中的某一列,比如显示的数据项过多时,我们需要让第一列不动,拖动横向滚动条时其他列隐藏,这时就需要冻结列了;另外,有时候也需要让datagrid的头部不动,拖动纵向滚动条时,下面的数据项可以滚动。在实现的过程中,其实就是用了css样式来控制,一起看一下。
要冻结哪一列,就把fixCol这个CSS加到HeaderStyle-CssClass和ItemStyle-CssClass-->
<style type="text/css">
.fixCol {}{ ; LEFT: expression(this.offsetParent.scrollLeft); POSITION: relative }
</style>
</HEAD>
<asp:BoundColumn DataField="LastName" HeaderText="姓名">
<!--下面就是冻结列-->
<HeaderStyle CssClass="fixCol"></HeaderStyle>
<ItemStyle CssClass="fixCol"></ItemStyle>
</asp:BoundColumn>
把fixTitle这个CSS加到DataGrid的HeaderStyle-CssClass和ItemStyle-CssClass-->
<style type="text/css">
.fixTitle {}{ POSITION: relative; ; TOP: expression(this.offsetParent.scrollTop) }
</style>
</HEAD>
<!--冻结头部-->
<ItemStyle ForeColor="#330099" BackColor="White" CssClass="fixTitle"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="#FFFFCC" BackColor="#990000" CssClass="fixTitle"></HeaderStyle>
<FooterStyle ForeColor="#330099" BackColor="#FFFFCC"></FooterStyle>
要冻结哪一列,就把fixCol这个CSS加到HeaderStyle-CssClass和ItemStyle-CssClass-->
<style type="text/css">
.fixCol {}{ ; LEFT: expression(this.offsetParent.scrollLeft); POSITION: relative }
</style>
</HEAD>
<asp:BoundColumn DataField="LastName" HeaderText="姓名">
<!--下面就是冻结列-->
<HeaderStyle CssClass="fixCol"></HeaderStyle>
<ItemStyle CssClass="fixCol"></ItemStyle>
</asp:BoundColumn>
把fixTitle这个CSS加到DataGrid的HeaderStyle-CssClass和ItemStyle-CssClass-->
<style type="text/css">
.fixTitle {}{ POSITION: relative; ; TOP: expression(this.offsetParent.scrollTop) }
</style>
</HEAD>
<!--冻结头部-->
<ItemStyle ForeColor="#330099" BackColor="White" CssClass="fixTitle"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="#FFFFCC" BackColor="#990000" CssClass="fixTitle"></HeaderStyle>
<FooterStyle ForeColor="#330099" BackColor="#FFFFCC"></FooterStyle>