可能我們會經常遇到這種情況,當頁面內容比較多的時候,當用戶執行操作執行一次頁面回送後,頁面又重新從頂端開始顯示,用戶不得不重新拖動滾動條回到先前的位置,這會給用戶帶來很不友好的體驗。即時使用updatepanel也會有這種情況。
幸好,asp.net提供了MaintainScrollPositionOnPostback屬性,可以徹底幫助我們解決這一問題。
只需在asp.net頁面的Page指令中設置MaintainScrollPositionOnPostback="true"就可以輕鬆實現。
請記住MaintainScrollPositionOnPostback屬性的默認值爲false。
另外asp.net的page對象還有一個SmartNavigator屬性,可以完成相同的功能。SmartNavigator屬性只能在後臺代碼中設置,asp.net建議使用MaintainScrollPositionOnPostback代替SmartNavigator。
MaintainScrollPositionOnPostback保持樹狀態
關於ASP.NET裏TreeView控件,我把TreeView控件放在一個有上下滾動條大小固定的DIV裏,當展開一個節點,頁面自動回發,滾動條又自動跳到了最頂端,假如裏面有很多節點,我希望展開底部某個節點後滾動條始終能保持在那裏不要回到頂端。
<%@ Page Language="C#" AutoEventWireup="true" MaintainScrollPositionOnPostback="true" CodeBehind="default.aspx.cs" Inherits="WebApplication1._default" %>
也就是在Page指令里加入了MaintainScrollPositionOnPostback="true"