摘要:.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。
我試起來還不錯!用用看吧~