解析 Page.MaintainScrollPositionOnPostBack 属性
ASP.NET 的頁面執行 PostBack 動作時,頁面由伺服端重新傳給客戶端,而頁面的垂直滾動條會跳回最上方,水平滾動條會跳回最左方。
為了解決此情形,只要將 Page 的MaintainScrollPositionOnPostBack 屬性設為True 時,頁面就會自動維護滾動條位置,它是如何實現這個動作的呢?
當把 Page.MaintainScrollPositionOnPostBack = "True" 時,檢視 HTML 原始碼,可以發現它多了"__SCROLLPOSITIONX" 及"__SCROLLPOSITIONY" 這二個 HiddenField,這二個 HiddenField 主要是要來記錄頁面滾動條的水平及垂直位置。
????<input?type="hidden"?name="__SCROLLPOSITIONX"?id="__SCROLLPOSITIONX"?value="0"?/>????<input?type="hidden"?name="__SCROLLPOSITIONY"?id="__SCROLLPOSITIONY"?value="204"?/>
頁面上也會多了以下這些JavaScript 程序代碼,它主要是透過WebForm_SaveScrollPositionSubmit 及WebForm_RestoreScrollPosition 這二個函式來維護頁面滾動條位置。
?2<!--
?3theForm.oldSubmit?=?theForm.submit;
?4theForm.submit?=?WebForm_SaveScrollPositionSubmit;
?5
?6theForm.oldOnSubmit?=?theForm.onsubmit;
?7theForm.onsubmit?=?WebForm_SaveScrollPositionOnSubmit;
?8
?9theForm.oldOnLoad?=?window.onload;
10window.onload?=?WebForm_RestoreScrollPosition;
11//?-->
12</script>
當頁面Submit 時會利用WebForm_SaveScrollPositionSubmit 函式來記錄頁面目前的水平及垂直滾動條位置,將水平滾動條位置記錄于"__SCROLLPOSITIONX" 這個 HiddenField,垂直滾動條位置記錄于"__SCROLLPOSITIONY" 這個 HiddenField。
而 PostBack 后頁面重新加載后,會利用WebForm_RestoreScrollPosition 函式來回復頁面滾動條位置,也就是將記錄在"__SCROLLPOSITIONX"?及"__SCROLLPOSITIONY" 這二個 HiddenField 的值,重新設定頁面的水平及垂直滾動條位置,如此就達到維護頁面滾動條位置的動作了
轉載于:https://www.cnblogs.com/qiuweiguo/archive/2011/08/03/2125754.html
總結
以上是生活随笔為你收集整理的解析 Page.MaintainScrollPositionOnPostBack 属性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 硬刚任天堂?罗技、腾讯云游戏掌机内幕首曝
- 下一篇: 阮一峰:jQuery官方基础教程笔记