- 一般以ASP.NET開發的網頁,若需在postback後,仍保持原本scrolling的位置,可於Page標籤加入MaintainScrollPositionOnPostback="true"屬性,即可解決。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FindLocation.aspx.cs" Inherits="FindLocation" MaintainScrollPositionOnPostback="true" %>
- 但若Scrolling的容器(ex:div)位於Update Panel內,則上述設定將無法讓Scrolling保持原有位置,解決方法如下:
於ScriptManager標籤後加入以下JavaScript程式碼
<asp:ScriptManager ID="ScriptManager" runat="server">
</asp:ScriptManager>
<script type="text/javascript">
var xPos, yPos;
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(BeginRequestHandler);
prm.add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args) {
xPos = $get('gvDiv').scrollLeft; //gvDiv請更換成適合的ID名稱
yPos = $get('gvDiv').scrollTop;
}
function EndRequestHandler(sender, args) {
$get('gvDiv').scrollLeft = xPos;
$get('gvDiv').scrollTop = yPos;
}
</script>
參考來源:http://forums.asp.net/t/1156877.aspx/2/10