相思天涯

年少的岁月 简单的事 曾经深深浅浅 云飞雪落的话 像很多行残缺的雨滴 湿润了已封存的记忆

导航

ASP.net中 动态加载控件后控件定位的问题(收藏)

Posted on 2004-06-15 15:51  相思天涯  阅读(666)  评论(0)    收藏  举报
这个问题困扰了我很久了,今天在csdn上见到了高人的代码。收藏!

1、在aspx页面给body添加id属性:<body id="thebody" MS_POSITIONING="GridLayout">
2、后台代码(.cs文件)中引用:using System.Text;
3、添加方法:
#region "防止页面滚动"
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 = thebody.scrollTop;");
 saveScrollPosition.Append("}");
 saveScrollPosition.Append("thebody.onscroll=saveScrollPosition;");
 saveScrollPosition.Append("</script>");

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

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

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

4、在page_load中调用此方法:
    this.RetainScrollPosition();

Form:http://community.csdn.net/Expert/topic/2779/2779374.xml?temp=.850094