2011年9月21日

Update Panel Scrolling 問題

  • 一般以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

3 則留言:

  1. 工具人也可以寫程式啦~不用競標嚕?

    回覆刪除
  2. 競標完,就是作案子啦,什麼叫作ALL IN ONE,程式當然還是得自己寫T_T。

    回覆刪除
  3. I love you so much!!!
    I have found lots of method but they are all useless. You are good man!!

    回覆刪除