當你使用你要去的UpdatePanel需要掛接到ASP.NET AJAX PageRequestManager
你需要一個方法添加到endRequest事件掛鉤是:
完成異步回發並將控件返回給瀏覽器後引發。
所以你會碰到這樣的:
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(pageLoaded);
function pageLoaded(sender, args) {
window.scrollTo(0,0);
}
</script>
這將迫使瀏覽器回到頁面頂部一次的更新請求已完成滾動。
有,你可以掛接到其他事件,而不是過程:
beginRequest // Raised before the request is sent
initializeRequest // Raised as the request is initialised (good for cancelling)
pageLoaded // Raised once the request has returned, and content is loaded
pageLoading // Raised once the request has returned, and before content is loaded
異步後背上的優點是,頁面將保持滾動高度,您無需設置MaintainScrollPosition,因爲沒有「全頁面重新加載」發生,在這種情況下,您實際上希望發生該效果,因此您需要手動創建它。
編輯響應更新問題
好了,如果你只需要重置某些按鈕按下了現在的位置是你需要做這樣的事情:通過掛鉤
開始入的BeginRequest不是/以及:
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
這是因爲在args參數您可以訪問:
args.get_postBackElement().id
它會告訴你,啓動了整個事件的按鈕的ID - 然後,您可以在這裏檢查值,和移動頁面,或將其存儲在一個變量,並且在最後的請求查詢它 - 瞭解比賽條件等,用戶在原始更新完成之前點擊另一個按鈕。
這應該讓你運氣好的話會 - 有解決這個上Working with PageRequestManager Events
我只想用ASP.NET GridView的這個特定事件返回到頁面頂部。我在同一頁面上有一堆其他按鈕,我想保持滾動位置。 – 2009-03-05 19:53:45