asp.net 防止頁面滾動的兩個方法

來源:互聯網
上載者:User
asp.net|頁面

一、
  private void RetainScrollPosition()
  {
   StringBuilder saveScrollPosition = new StringBuilder ();
   StringBuilder setScrollPosition = new StringBuilder ();

   RegisterHiddenField("__SCROLLPOS", "0");

   saveScrollPosition.Append("<script language='javascript'>");
   saveScrollPosition.Append("function saveScrollPosition() {");
   saveScrollPosition.Append("    document.forms[0].__SCROLLPOS.value = MyBody.scrollTop;");
   saveScrollPosition.Append("}");
   saveScrollPosition.Append("MyBody.onscroll=saveScrollPosition;");
   saveScrollPosition.Append("</script>");

   RegisterStartupScript("saveScroll", saveScrollPosition.ToString());

   if (Page.IsPostBack)
   {
    setScrollPosition.Append("<script language='javascript'>");
    setScrollPosition.Append("function setScrollPosition() {");
    setScrollPosition.Append("    MyBody.scrollTop = " + Request["__SCROLLPOS"] + ";");
    setScrollPosition.Append("}");
    setScrollPosition.Append("MyBody.onload=setScrollPosition;");
    setScrollPosition.Append("</script>");

    RegisterStartupScript("setScroll", setScrollPosition.ToString());
   }
  }

page_load 時,執行RetainScrollPosition()
頁面html中,body加id=MyBody,即可這樣一次添加,只要繼承的頁面都會實現你想要的了
(引用別人的,原作者我忘了,在此感謝)

二、

在你需要的位置添加一個對象控制項,讓頁面重新整理後定位到此控制項的位置,使用了scrollIntoView方法。

 public void ScrollToObject(string str_Ctl_Name,Page page)
{
    if(!page.IsStartupScriptRegistered ("ScrollObject"))
   {
         page.RegisterStartupScript("msgScrollObject"," <script>document.forms(0)."+str_Ctl_Name+".scrollIntoView();document.forms(0)."+str_Ctl_Name+".focus(); </script>");
  }
}

註:ScrollToObject:方法名
        str_Ctl_Name:控制項名



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.