`
hududanyzd
  • 浏览: 815578 次
文章分类
社区版块
存档分类
最新评论

ASP.NET控件开发之ScrollGridView(兼容FF、IE、苹果、谷歌、搜狗等浏览器。固定表头滚动的GridView控件)

 
阅读更多

这篇文章本来在2个月前就应该写了的,只是一直没有找到好的解决方案,所以迟迟没有动笔,直到今天,才找到了比较满意的解决方案。

网上关于固定GridView表头,常见的有两种解决方案,一种是采用css样式,一种则是使用js代码。我再后面贴出了网上常用的解决方案,不过这两种解决方案都无法从根本上解决问题,并且还有一个致命的缺点,那就是在FF中不支持,我认为采用jquery重写表头扩展GridView才是釜底抽薪的解决办法。记得在网上有一个固定表头的GridView扩展控件,不过这个控件在Update下面一回发就会报错。我这个控件是在GridViewFixedHeaderExtender控件之上进行了改良的,因为我发现GridViewFixedHeaderExtender在IE9中页面第一次加载的时候表头布局会乱,经过我一番研究,发现这是因为在IE9中它的相对定位出了问题,苦思了一整天,终于想出了一个好的解决方案,在IE9中,对其进行特别处理,表头的外层设置为相对定位,内层设置为绝对定位,这样就一切oK了。

本控件最终效果图:

以下是ScrollGridView的源代码:

js代码如下:



1,样式固定。

这个方法是从网上参考的,但是忘记了来源,使用之后发现效果不是很好,有闪动,并且在FF浏览器中不支持。以下是源码(来源于网络):


<style type="text/css">
.Freezing
{
position:relative;
table-layout:fixed;
top:expression(this.offsetParent.scrollTop);
z-index:10;
}
.Freezing th{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;padding:2px;}
</style>

2,Javascript方法。

也是网上参考,搜索应该比较多,据网友回帖说是效果很好,自己使用效果不好。以下是源码分析

//创建表头
if(document.getElementById("gvTitle")==null)
{
vargdvList=document.getElementById("gvCommon");
vargdvHeader=gdvList.cloneNode(true);
gdvHeader.id="gvTitle";
for(i=gdvHeader.rows.length-1; i>0;i--)
{
gdvHeader.deleteRow(i);
}
document.getElementById("divTitle").appendChild(gdvHeader);
vardiv=document.getElementById("divGvData");
vartbl=document.getElementById("divTitle");
tbl.style.position="absolute";
tbl.style.zIndex=100;
tbl.style.top=div.offsetTop;
tbl.style.left=div.offsetLeft;
}

大致做法是利用JS方法Copy出一个表头 gdvHeader 放在一个“divTitle”的DIV中。

GridView是包含在“divGvData”DIV中的,然后设置divTitle的页面位置和divGvData的一致,也就是覆盖在上面。 目前发现效果还行。有一点要注意,gdvHeader.id = "gvTitle";要重新设置一个ID,不然删除的还是GridView的数据行。缺点:FF中不支持。

HTML中的部分代码:

<divid="divTitle"style="position:relative; top:0; left:0; overflow:hidden; width:978px; border:0px solid red;"></div>
<divid="divGvData"runat="server"style="position:relative; top:0px; left:0px; overflow:scroll; width:994px;height:450px;"onscroll="funGrilViewScroll(); return false;">
<asp:GridViewID="gvCommon"style="position:relative; top:0px; left:0px;"runat="server"CssClass="gvFixd"BackColor="White"BorderColor="#999999"BorderStyle="None"BorderWidth="1px"CellPadding="3"AutoGenerateColumns="False"GridLines="Vertical"PageSize="5"AllowSorting="True"OnSorting="gvCommon_Sorting">
<FooterStyleBackColor="#CCCCCC"ForeColor="Black"/>
<RowStyleBackColor="#E7E7FF"ForeColor="Black"Font-Size="Small"/>
<HeaderStyleHorizontalAlign="Center"BackColor="#000084"BorderColor="White"BorderWidth="1px"BorderStyle="Solid"Font-Bold="True"ForeColor="White"/>
</asp:GridView>
</div>

分享到:
评论

相关推荐

    ASP.NET固定GridView表头_SuperTables

    总之,"ASP.NET固定GridView表头_SuperTables"是一个解决ASP.NET GridView滚动时表头固定问题的技术,它通过结合CSS和JavaScript实现。通过正确地集成和配置提供的资源,开发者能够提供更好的用户体验,使用户在滚动...

    ASP.NET控件开发教程

    ASP.NET控件开发是Web应用程序开发中的核心组成部分,它允许开发者构建交互性强、功能丰富的用户界面。本教程针对初学者,旨在提供一个全面的ASP.NET控件开发基础,帮助你快速掌握这一技术。 1. **ASP.NET控件基础*...

    gridview固定表头 横向滚动 纵向固定

    为了实现GridView固定表头横向滚动纵向固定的功能,需要设置GridView的属性,例如Width、Style、ForeColor、GridLines等。 GridView控件的代码如下: ``` &lt;asp:GridView ID="gv_List" runat="server" Width="100%" ...

    ASP.Net控件开发基础资料

    ASP.NET控件开发是构建动态Web应用程序的关键技术之一。这些资料涵盖了从基础知识到高级技巧,帮助开发者深入理解ASP.NET控件的工作原理以及如何自定义它们。以下是对这些资源的详细解读: 1. **ASP.NET控件开发...

    ASP.NET控件开发

    ASP.NET控件开发是Web应用程序开发中的核心组成部分,它允许开发者构建交互性强、功能丰富的用户界面。本实例代码集合提供了一种快速学习和实践控件开发的方法,对于想要深入理解ASP.NET控件工作原理和定制自定义...

    asp.net控件笔记 asp.net控件笔记

    ASP.NET控件是微软.NET Framework框架中用于构建Web应用程序的核心元素。这些控件提供了一种简单的方法来构建交互式、动态的网页。本笔记将深入探讨ASP.NET控件的各个方面,帮助开发者更好地理解和使用这些工具。 ...

    ASP.ENT GridView 表头固定 表身可以滚动

    ASP.NET的GridView控件是网页开发中常用的数据显示组件,它能方便地将数据库中的数据以表格形式展示。然而,当GridView中的数据过多时,为了保持页面的清晰度,通常需要实现表头固定而表身可滚动的效果。"ASP.NET ...

    Asp.Net开发控件

    Asp.Net开发控件是Web应用开发中的重要组成部分,它为开发者提供了丰富的界面元素和功能,使得构建交互式、动态的网页变得更加便捷。Asp.Net框架内置了大量的服务器控件,这些控件可以直接在服务器端处理事件,简化...

    ASP.NET服务器控件开发技术与实例

    ASP.NET服务器控件是.NET Framework框架中的核心组件之一,它们为Web应用程序的用户界面提供丰富的交互性和功能。在ASP.NET中,服务器控件是运行在服务器端的代码,负责处理用户的输入、呈现HTML到浏览器,并在需要...

    asp.net控件开发实例

    这个“asp.net控件开发实例”很可能是为了教授开发者如何从头开始构建自己的ASP.NET控件,包括服务器端控件、客户端控件以及两者之间的交互。以下是一些关于ASP.NET控件开发的核心知识点: 1. **服务器控件**:ASP...

    asp.net控件练习

    ASP.NET控件是构建Web应用程序的核心元素,它们提供了一种直观的方式来交互和处理用户输入。在ASP.NET中,控件可以分为服务器控件、HTML控件和Web自定义控件等类型。本练习主要涵盖了ASP.NET中的多种控件及其应用,...

    c#gridview滚动条固定表头

    c# gridview 滚动条固定表头 IE已测试 c# gridview 滚动条固定表头 IE已测试 c# gridview 滚动条固定表头 IE已测试

    道不远人:深入解析ASP.NET 2.0控件开发

    综上所述,“道不远人:深入解析ASP.NET 2.0控件开发”这个主题涵盖了ASP.NET 2.0的核心特性和控件开发技术,深入探讨了页面生命周期、控件继承、视图状态、数据绑定以及安全性等关键知识点。通过学习这些内容,...

    ASP.NET控件与组件开发

    ASP.NET控件与组件开发是Web开发领域中的一个重要主题,主要涉及如何在ASP.NET框架下创建和使用自定义的服务器控件以及组件。这门教程深入浅出地讲解了这一技术,适合对ASP.NET有一定基础的开发者进行进一步的学习和...

    扩展ASP.NET控件:可滚动的GridView

    在ASP.NET开发中,GridView控件是用于展示数据表格的常用组件,它允许开发者方便地绑定数据源并呈现数据。然而,标准的GridView控件在处理大量数据时可能会导致页面过于拥挤,这时就需要对其进行扩展以增加垂直滚动...

    ASP.NET初级_GridView控件和FormView控件

    GridView控件是ASP.NET Web Forms中的一种强大工具,它允许开发人员以表格形式轻松地显示数据。GridView非常适合那些需要快速浏览和操作大量结构化数据的场景。以下是一些关于GridView的关键知识点: 1. **数据绑定...

    ASP.net控件

    ASP.NET控件是微软开发的Web应用程序框架ASP.NET的重要组成部分,用于构建动态、交互式的网页。这些控件提供了一种直观的方式来创建用户界面,并且在服务器端处理用户的输入和交互。"ASP.NET控件大全"可能包含了一...

    asp.net 控件开发+源码

    本资源名为"asp.net 控件开发+源码",结合描述中的"ASP.NET2.0服务器控件与组件开发高级编程源代码",我们可以深入探讨ASP.NET 2.0的控件开发及其重要知识点。 首先,ASP.NET 2.0引入了服务器控件的增强功能,如...

    asp.net GridView自定义控件源码

    ASP.NET GridView 是一个非常强大的数据绑定控件,用于在网页上显示来自数据库或其他数据源的数据。这个"asp.net GridView自定义控件源码"显然提供了一种方式来美化默认的GridView,使其更具视觉吸引力和用户体验。 ...

Global site tag (gtag.js) - Google Analytics