含 UpdatePanel 的頁面必須有 ScriptManager。主版頁面有兩種放置策略:
Page_Load 設定 ScriptManager.GetCurrent(this).EnablePartialRendering = false。ScriptManager 放入頁面,**務必置於 ContentPlaceHolder 之外**。
Content 控制項內輸入「內容頁面」。UpdatePanel 至 Content 區塊。
若有巢狀主版頁面(子主版頁面繼承父主版頁面),ScriptManager 僅能放在最頂層主版頁面**,子主版頁面與內容頁不可再放置,否則會拋出「頁面只能有一個 ScriptManager」例外。
| 屬性 | 用途 |
|---|---|
| EnablePartialRendering | 總開關,false 關閉所有 UpdatePanel 非同步行為 |
| LoadScriptsBeforeUI | true:腳本先於 UI 載入(預設);false:UI 優先 |
| AsyncPostBackTimeout | 非同步回發逾時秒數(預設 90 秒) |
| EnableScriptGlobalization | true 讓客戶端腳本讀取伺服器 CultureInfo |
| ScriptMode | Release/Debug/Auto 決定輸出腳本是否壓縮 |
Page_Error 或 ScriptManager.AsyncPostBackError 事件處理。AsyncPostBackTrigger.ControlID 必須為同一 NamingContainer 內的控制項 ID,跨 NamingContainer 需用完整 UniqueID。UpdateMode="Conditional" + 明確 Triggers,減少不必要的部分更新。掌握主版頁面 ScriptManager 放置策略,即可在整站統一啟用 AJAX,並精準控制哪些頁面、哪些區塊享有部分更新能力。