日期:2010-11-16  浏览次数:20468 次

  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>