1. Private Sub RetainScrollPosition() Dim saveScrollPosition As New StringBuilder Dim setScrollPosition As 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) Then 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()) End If End Sub 2.page_load 调用RetainScrollPosition() 3.<body id="thebody" MS_POSITIONING="GridLayout"> 改成这个id
除非你把滚动条的位置记在cookie里或什么里面。。
从一页移动到另一页时保持滚动位置。
保持导航之间的元素焦点。
在浏览器的历史记录中只保留最后一页的状态。
智能导航最适用于需要频繁回发但是其可是内容在返回时不会发生显著更改的 ASP.NET 页。在决定是否将该属性设置为 true 时,请仔细考虑这一点。
Dim saveScrollPosition As New StringBuilder
Dim setScrollPosition As 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) Then 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())
End If
End Sub
2.page_load
调用RetainScrollPosition()
3.<body id="thebody" MS_POSITIONING="GridLayout">
改成这个id
1)在提交之前保存滚动条的高度在隐藏域里(runat=server),然后提交;
document.all.hidScrollTop.value = document.scrollTop;
2)提交操作处理之后,注册一段javascript在Response里:
string strScript = "<script language=javascript>window.load=function(){";
+= "document.scrollTop = " + this.hidScrollTop.Value + ";";
+= "}";
this.RegisterClientScriptBlock("js", strScript);
<SCRIPT language="JavaScript1.1">
<!--
var autoScrollOn = 1;
var scrollOnFunction;
var scrollOffFunction; function scrollWindow( )
{
if ( autoScrollOn == 1 )
{
this.scroll(0, 65000);
setTimeout('scrollWindow()', 200);
}
} function scrollOn( )
{
autoScrollOn = 1;
scrollWindow( );
} function scrollOff( )
{
autoScrollOn = 0;
} function StartUp( )
{
this.onblur = scrollOnFunction;
this.onfocus = scrollOffFunction;
scrollWindow( );
} scrollOnFunction = new Function('scrollOn( )')
scrollOffFunction = new Function('scrollOff( )')
StartUp();
// -->
</SCRIPT>
<%@ Page language="c#" SmartNavigation="true" Codebehind="NowGanttview.aspx.cs" AutoEventWireup="false" Inherits="EZ.Manage.DataAnalyze.NowGanttview" %>
http://www.cnblogs.com/huobazi/archive/2004/09/20/44823.html
document.all.TextBox1.value=document.body.scrollTop;
但刷新后就成0了