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