zoukankan      html  css  js  c++  java
  • 解决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()">
    ......
    ......
    ......
    </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>");
        }
  • 相关阅读:
    19.1.30 [LeetCode 24] Swap Nodes in Pairs
    19.1.29 [LeetCode 23] Merge k Sorted Lists
    06_Python异常处理机制
    05_Python的文件操作
    04_Python中的35个关键字
    03_Python基础语法
    02_Python开发环境使用和PDB调试
    01_Python基础知识梳理
    socket post
    python_socket_cmd
  • 原文地址:https://www.cnblogs.com/jlcoder/p/3272189.html
Copyright © 2011-2022 走看看