页面回传后页面滚动到顶端,造成这一问题的原因是页面回传,其实等于载入一次页面,新载入的页面会定点到页面的顶端。这一特点会造成很差的用户使用感受,如何解决这一问题呢,我们可以借用隐藏的ViewState机制保存当前页面滚动的位置,在页面回传后调用。
<%@ Page language="c#" Codebehind="Test_THIN.aspx.cs" AutoEventWireup="false" Inherits="EIM.web.Test_THIN" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>Test_THIN</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<script language="javascript">
function savescroll()
{
var hid = document.getElementById("hid");
hid.value = document.body.scrollTop;
}
function getscroll()
{
var hid = document.getElementById("hid");
//hid.value = document.body.scrollTop;
document.body.scrollTop = hid.value;
}
</script>
</HEAD>
<body MS_POSITIONING="GridLayout" onload="getscroll()" onscroll="savescroll()">
<form id="Test_THIN" method="post" runat="server" onsubmit="savescroll()">
<INPUT style="Z-INDEX: 101; LEFT: 216px; POSITION: absolute; TOP: 127px" type="hidden" id="hid" runat="server">
<asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 37px; POSITION: absolute; TOP: 1529px" runat="server" Text="Button"></asp:Button>
</form>
</body>
</HTML>