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>");
        }
  • 相关阅读:
    ZOJ 3642 多重匹配 离散化.cpp
    POJ 1840 Eqs.cpp 【 Hash 】
    Hdu 4293 DP
    Hlg 1407 【最小点权覆盖】.cpp
    Hdu 3605 多重匹配
    POJ 2195 【二分图最佳匹配】.cpp
    Hdu 4292 Food.cpp 最大流+拆点
    POJ 3469 【最小割】.cpp
    limit_choices_to a value on a field in the same model Google Groups
    Django: limit_choices_to (Is this correct) Stack Overflow
  • 原文地址:https://www.cnblogs.com/jlcoder/p/3272189.html
Copyright © 2011-2022 走看看