让GridView的Food和Header一直固定显示在屏幕上(滚动时)
2008-02-15 16:20
295 查看
翻译
fenglinzh. 著How to Fixed GridView's Header and Footer when scrolling?
简介
本文向你展示:如何通过CSS和javascript,在GridView中使用滚动条滚动内容的时候,固定显示header头和footer。
代码使用
1. 使用下面的两个CSS类,分别作为header和footer的风格
.GVFixedHeader { font-weight:bold; background-color: Green; position:relative;
top:expression(this.parentNode.parentNode.parentNode.scrollTop-1);}
.GVFixedFooter { font-weight:bold; background-color: Green; position:relative;
bottom:expression(getScrollBottom(this.parentNode.parentNode.parentNode.parentNode));}
2. 使用下面的JavaScript脚本计算Footer的位置
<script language="javascript" type="text/javascript">
function getScrollBottom(p_oElem)
{
return p_oElem.scrollHeight - p_oElem.scrollTop - p_oElem.clientHeight;
}
</script>
3. 在一个Panle中创建GridView,设置Panle的ScrollBars属性为"Auto",Gridview的HeaderStyle为"GVFixedHeader",FooterStyle为"GVFixedFooter"。
<asp:Panel runat="server" ID="pnlContainer" ScrollBars="Auto"Height="150px" Width="400">
<asp:GridView ShowFooter="True" runat="server" Width="96%" ID="gvDemo" AutoGenerateColumns="False">
<HeaderStyle CssClass="GVFixedHeader" />
<FooterStyle CssClass="GVFixedFooter" />
<Columns>
<asp:TemplateField HeaderText="C1">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("C1") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
C1 Footer Here
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="C2">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("C2") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
C2 Footer Here
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</asp:Panel>
4. 后台代码
5. 运行代码,你就会发现当你滚动GridView内容的时候,Food和Header被固定地一直显示在屏幕上。
fenglinzh. 著How to Fixed GridView's Header and Footer when scrolling?
简介
本文向你展示:如何通过CSS和javascript,在GridView中使用滚动条滚动内容的时候,固定显示header头和footer。
代码使用
1. 使用下面的两个CSS类,分别作为header和footer的风格
.GVFixedHeader { font-weight:bold; background-color: Green; position:relative;
top:expression(this.parentNode.parentNode.parentNode.scrollTop-1);}
.GVFixedFooter { font-weight:bold; background-color: Green; position:relative;
bottom:expression(getScrollBottom(this.parentNode.parentNode.parentNode.parentNode));}
2. 使用下面的JavaScript脚本计算Footer的位置
<script language="javascript" type="text/javascript">
function getScrollBottom(p_oElem)
{
return p_oElem.scrollHeight - p_oElem.scrollTop - p_oElem.clientHeight;
}
</script>
3. 在一个Panle中创建GridView,设置Panle的ScrollBars属性为"Auto",Gridview的HeaderStyle为"GVFixedHeader",FooterStyle为"GVFixedFooter"。
<asp:Panel runat="server" ID="pnlContainer" ScrollBars="Auto"Height="150px" Width="400">
<asp:GridView ShowFooter="True" runat="server" Width="96%" ID="gvDemo" AutoGenerateColumns="False">
<HeaderStyle CssClass="GVFixedHeader" />
<FooterStyle CssClass="GVFixedFooter" />
<Columns>
<asp:TemplateField HeaderText="C1">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("C1") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
C1 Footer Here
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="C2">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("C2") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
C2 Footer Here
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</asp:Panel>
4. 后台代码
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim dt As New DataTable dt.Columns.Add("C1") dt.Columns.Add("C2") Dim drRow As DataRow For i As Integer = 0 To 10 drRow = dt.NewRow drRow(0) = "C1" & i drRow(1) = "C2" & i dt.Rows.Add(drRow) Next Me.gvDemo.DataSource = dt Me.gvDemo.DataBind() End Sub
5. 运行代码,你就会发现当你滚动GridView内容的时候,Food和Header被固定地一直显示在屏幕上。
相关文章推荐
- 让GridView的Food和Header一直显示在屏幕上(滚动时)
- "把一个div标签,给它的属性设置position: fixed;bottom:0;固定在浏览器的最底部。 这个div标签在浏览器上下滚动的时候,会一直保持在屏幕最底部,这一点没有问题。但问题是当浏览
- 使用WindowManager.addView()方法增加的悬浮窗口,如何固定屏幕显示方向?
- 需求:页面content分为左右两栏,左侧固定定位,滚动显示,右侧亦可滚动查看
- Asp.net 2.0 自定义控件开发[实现GridView多行表头固定表体滚动效果][示例代码下载]
- vue实现某元素吸顶或固定位置显示(监听滚动事件)
- andorid gridview 单行横向显示 横向滚动实现
- 设置-wifi-高级设置,选择仅充电时保持WLAN开启/睡眠期间不保持wlan的开启状态,手机锁屏休眠几分钟后,再点亮屏幕,wifi一直显示开启状态
- GridView无记录时不显示表头(Header)的勉强解决方案
- css将div层固定显示在页面底部不随滚动条滚动
- GridView实现一行显示并左右滚动
- android:screenOrientation的说明 固定屏幕显示方向
- 让GridView在无数据时显示表头Header和脚注Footer
- 解决jsp底部footer一直处于界面底端的问题(自适应,随着屏幕滚动)
- DevExpress ASPxGridView 代码固定列,水平滚动不变
- 创建表头固定,表体可滚动的GridView(转)
- 创建表头固定,表体可滚动的GridView
- 表头固定,表体可滚动的GridView
- 不修改 GridView的HeaderText,其中数据库中的头标题是:custName,custId.这样的字符同样显示在GridView中,应该如何更改才能让GridView的头一行显示:姓名,编号而不是显示custName,custId
- 解决 scroll() position:fixed 抖动、导航菜单固定头部(底部)跟随屏幕滚动