2011-05-24 50 views
0

我在內容標籤內有一個div標籤,因爲我使用的是具有表單和主體標籤的主頁。在div中滾動位置與主頁面

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server"> 

    <div id="xxx" style="overflow:scroll; height:450px;"> 

    <asp:GridView ID="GridView1" runat="server" ...> 

    </asp:GridView> 

    </div> 
</Content> 

我希望在發生任何回發時保持div的滾動位置。

有jscripts,當我搜索它,但我不知道 我如何將它們應用於masterpage。

如果有更簡單的方法請幫助。或者如何在上面的代碼中使用JavaScript。

任何幫助表示讚賞..謝謝

回答

1

試試這個它爲我工作。

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server"> 
    <div id="divScroll" style="overflow:auto; height:450px;"> 
     <asp:GridView ID="GridView1" runat="server" ...> 
     </asp:GridView> 
    </div> 
</Content> 
<script type="text/javascript"> 
    Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler); 
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);    
</script> 
</asp:UpdatePanel> 

javascript文件添加以下代碼:

var scrollTop; 
function BeginRequestHandler(sender, args) 
{ 
    var m = document.getElementById('divScroll'); 
    scrollTop = m.scrollTop; 
} 
function EndRequestHandler(sender, args) { 
    var m = document.getElementById('divGrid'); 
    m.scrollTop = scrollTop; 
} 
2

您可以使用AJAX來去除回傳,這將讓你的位置。更具體地說,你可以看看UpdatePanel控件。

更新:

非AJAX的解決辦法是添加以下屬性,在頁面的標籤。

<%@頁MaintainScrollPositionOnPostback = 「真正的」 %>

+0

是的,這是一種選擇,但我必須在解決許多網頁,與我公司不希望進行改變的一個,而不是做對休息..總之它是一個未來的項目,我需要這個功能沒有ajax ...感謝您的快速回復,雖然 – user175084 2011-05-24 15:35:44

+1

試試這個:<%@ Page MaintainScrollPositionOnPostback =「true」%> – Mike 2011-05-24 15:37:52

+0

我已經嘗試過,但它沒有爲div工作,它適用於頁面的主滾動。 – user175084 2011-05-24 15:52:21