首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET UpdatePanel 在主版頁面應用:ScriptManager 放置策略與內容頁啟用控制

     編輯:關於ASP.NET

主版頁面使用 UpdatePanel 核心規則

含 UpdatePanel 的頁面必須有 ScriptManager。主版頁面有兩種放置策略:

策略一:ScriptManager 放在主版頁面(推薦大多數情況)

  • 所有內容頁自動擁有 ScriptManager,無需重複宣告。
  • 若個別內容頁不需要部分更新,可在該頁 Page_Load 設定 ScriptManager.GetCurrent(this).EnablePartialRendering = false。

策略二:ScriptManager 放在各內容頁面

  • 僅少數內容頁需要 AJAX 時適用,避免不必要的 ScriptManager 開銷。
  • 每個需 AJAX 的內容頁自行拖入 ScriptManager。

實作步驟:策略一完整演示

1. 建立主版頁面 (Site.master)

  1. 切換至設計檢視。
  2. 工具箱「AJAX Extensions」雙擊 ScriptManager 放入頁面,**務必置於 ContentPlaceHolder 之外**。
  3. 在 ContentPlaceHolder 外加入文字「主版頁面」。
  4. 從「HTML」工具箱拖入「水平線」置於文字後。

主版頁面設計檢視

2. 建立內容頁面

  1. 方案總管右鍵專案 → 「加入新項目」 → 勾選「選取主版頁面」 → 選擇 Site.master。
  2. 在 Content 控制項內輸入「內容頁面」。
  3. 從工具箱拖入 UpdatePanel 至 Content 區塊。

內容頁面設計檢視

進階:巢狀主版頁面

若有巢狀主版頁面(子主版頁面繼承父主版頁面),ScriptManager 僅能放在最頂層主版頁面**,子主版頁面與內容頁不可再放置,否則會拋出「頁面只能有一個 ScriptManager」例外。

ScriptManager 關鍵屬性速查

屬性用途
EnablePartialRendering總開關,false 關閉所有 UpdatePanel 非同步行為
LoadScriptsBeforeUItrue:腳本先於 UI 載入(預設);false:UI 優先
AsyncPostBackTimeout非同步回發逾時秒數(預設 90 秒)
EnableScriptGlobalizationtrue 讓客戶端腳本讀取伺服器 CultureInfo
ScriptModeRelease/Debug/Auto 決定輸出腳本是否壓縮

常見錯誤與解法

  • 錯誤:「Sys.WebForms.PageRequestManagerServerErrorException」 → 通常為 UpdatePanel 內控制項觸發伺服器錯誤,檢查 Page_Error 或 ScriptManager.AsyncPostBackError 事件處理。
  • 錯誤:「無法找到名為 'xxx' 的控制項」 → AsyncPostBackTrigger.ControlID 必須為同一 NamingContainer 內的控制項 ID,跨 NamingContainer 需用完整 UniqueID。
  • 效能:大量 UpdatePanel 時考慮 UpdateMode="Conditional" + 明確 Triggers,減少不必要的部分更新。

掌握主版頁面 ScriptManager 放置策略,即可在整站統一啟用 AJAX,並精準控制哪些頁面、哪些區塊享有部分更新能力。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved