ASP.NET 魔法學院

Home Contact Syndicate this Site (RSS 2.0) Syndicate this Site (Atom) Login
  106 Posts :: 1 Stories :: 106 Comments :: 1 Trackbacks

News

☆ 有些事現在不做,就一輩子都不會做了 ☆

每月文章

隨筆分類

影像集

好站連結


GridView 若需要有捲軸,通常會將 GridView 置於 Panel 中,並設定 Panel 的 ScrollBars 屬性為 "Auto" 時,這樣就可以在 Panel 就會自動判斷是否需要出現水平或垂直捲軸。

可是當頁面 PostBack 時,Panel 的垂直捲軸會跳回最上方,水平捲軸會跳回最左方。我們可以參考 Page.MaintainScrollPositionOnPostBack 屬性的做法(參考 解析 Page.MaintainScrollPositionOnPostBack 屬性 這篇文章),利用二個 HiddenField 來記錄水平及垂直捲軸的位置。

我們可以在 Page Load 中撰寫如下的程式碼,其中 Panel 的 ID 命名為 Panel1,在面頁輸出 "ScrollPosX" 及 "ScrollPosY" 二個 HiddenField,當頁面 Sumbit 時,利用 "ScrollPosX" HiddenField 來記錄捲軸水平位置,"ScrollPosY" HiddenField 來記錄垂直位置。
而當頁面 PostBack 後重新載入頁面,就取得這二個 HiddenField 值,重新設定 Panel 的捲軸位置,如此就可以維護 Panel 捲軸位置。

posted on Thursday, January 17, 2008 7:46 AM

Feedback

# re: 維護 Panel 捲軸位置 2/27/2008 8:56 AM blaz
想請教幾個問題,假如要把這個放在 updatepanel 去用的話,
會出現無法加入控制項,因為包含 <% %> 變數,
這要怎麼解決=▽=?


# re: 維護 Panel 捲軸位置 2/29/2008 5:57 PM jeff
上述的方法,我一般也會放在 UpdatePanel 使用沒有什麼問題。
只有一段註冊用戶端指令碼的部分要修正

Me.ClientScript.RegisterStartupScript

在 UpdatePanel 中需改用

ScriptManager.RegisterStartupScript

Post Feedback

Title:
Name:
Url:
驗證碼  
Comments: