.net- VS2003中, 畫面回到 PostBack 前的所在位置。

摘要:.net- VS2003中, 畫面回到 PostBack 前的所在位置。

需求如標題描述的,所以我上網找了一下資料,並且整理出來!
有需要的人可以參考一下。
以下是微軟提供的一個支程式, 是C#語法

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 == true)) 
	{ 
  
		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()); 
  
	} 
} 

只要在Page_Load呼叫這個副程式就可以了,而且在html中將body 的 id 命名為 thebody。
我試起來還不錯!用用看吧~