解决ASP.NET回传后div滚动条位置复位的问题(利用隐藏控件原理)

 更新时间:2014年01月13日 11:36:15   作者:  
这篇文章主要介绍了解决ASP.NET回传后div滚动条位置复位的问题,中心思想是用一个隐藏控件保存当前scorll值。回传回来后根据scrollTop的值,然后在Page_Load中重新设置scrollTop

首先是为DIV添加一个onscroll="javascript:setScollTop()" 的方法(当然不一定是DIV其他的标签思路应该也是这样的)

复制代码 代码如下:

<div style="overflow: auto; height: 152px" align="left" id="dvScoll_1"   onscroll="javascript:setScollTop()">
www.jb51.net
......
</div>

这里setScrollTop方法就是每次滚动条滚动的时候,把div的ScrollTop的值赋给一个隐藏控件。代码如下

复制代码 代码如下:

function setScollTop()
  {
     document.getElementById("<%=hidScrollTop.ClientID%>").value=document.getElementById("dvScoll_1").scrollTop;
  }

因为每次.net回发滚动条都会复位,所以这里我们 在Page_Load中给DIV的ScrollTop重新赋值了。代码如下

复制代码 代码如下:

if (!IsPostBack)
                {
                   。。。。。
                }
                else
                {
                    //恢复滚动条位置
                    if (this.hidScrollTop.Value!="")
                    {
                        string scrollTop = this.hidScrollTop.Value;
                        string strScript="document.getElementById('dvScoll_1').scrollTop="+scrollTop;
                        RegisterScriptBlock(this.Page, strScript);
                    }
                }

这里的RegisterScriptBlock是我写的一个方法,放在公共类库里的,如下所示。

 

复制代码 代码如下:

 /// <summary>
    /// 注册脚本块
    /// </summary>
    public static void RegisterScriptBlock(System.Web.UI.Page page, string _ScriptString)
    {
        page.ClientScript.RegisterStartupScript(page.GetType(), "scriptblock", "<script type='text/javascript'>" + _ScriptString + "</script>");
    }
 

相关文章

  • ASP.NET Cache的一些总结分享

    ASP.NET Cache的一些总结分享

    最近我们的系统面临着严峻性能瓶颈问题,这是由于访问量增加,客户端在同一时间请求增加,这迫使我们要从两个方面解决这一问题,增加硬件和提高系统的性能
    2012-08-08
  • ASP.NET 文件断点续传实现代码

    ASP.NET 文件断点续传实现代码

    在文件下载的时候,使用断点续传可以将上次未下载完成的文件继续下载,该功能在开发文件下载的时候非常重要。这里我将介绍一种比较简单的断点续传功能的实现方法,仅供初学者参考使用
    2012-06-06
  • Asp.Net Core控制器如何接收原始请求正文内容详解

    Asp.Net Core控制器如何接收原始请求正文内容详解

    这篇文章主要给大家介绍了关于Asp.Net Core控制器如何接收原始请求正文内容的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09
  • 在.NetCore(C#)中使用ODP.NET Core+Dapper操作Oracle数据库

    在.NetCore(C#)中使用ODP.NET Core+Dapper操作Oracle数据库

    这篇文章主要介绍了在.NetCore(C#)中使用ODP.NET Core+Dapper操作Oracle数据库,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • .NET Core使用Autofac容器的DI依赖注入,IOC控制反转及AOP切面编程

    .NET Core使用Autofac容器的DI依赖注入,IOC控制反转及AOP切面编程

    本文详细讲解了.NET Core使用Autofac容器的DI依赖注入,IOC控制反转及AOP切面编程,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • 使用.NET Core创建exe应用程序

    使用.NET Core创建exe应用程序

    这篇文章介绍了使用.NET Core创建exe应用程序的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C#将DataTable转化为List<T>

    C#将DataTable转化为List<T>

    本文给大家讲解的是如何使用C#将DataTable数据源转化为List<T>泛型集合(已知T类型) 的方法和示例,有需要的小伙伴可以参考下
    2015-06-06
  • .Net Core日志记录之自定义日志组件

    .Net Core日志记录之自定义日志组件

    这篇文章介绍了.Net Core日志记录之自定义日志组件,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • ASP.NET:把ashx写到类库里并在页面上调用的具体方法

    ASP.NET:把ashx写到类库里并在页面上调用的具体方法

    最近在调整博客的架构,进一步把表现和业务分离,所以要把之前用ashx搞的那些Http Handler放到类库中,下面是具体的步骤及代码
    2013-06-06
  • asp.net 防止SQL注入攻击

    asp.net 防止SQL注入攻击

    asp.net网站防止SQL注入攻击,通常的办法是每个文件都修改加入过滤代码,这样很麻烦,下面介绍一种办法,可以从整个网站防止注入。
    2009-06-06

最新评论