ScriptManager 控制項管理支援 AJAX 的 ASP.NET 網頁的用戶端指令碼。預設情況下,ScriptManager 控制項會向頁面註冊 Microsoft AJAX Library 的指令碼。這將使用戶端指令碼能夠使用類型系統擴充並支援部分頁呈現和 Web 服務調用這樣的功能。
必須在頁上使用 ScriptManager 控制項,以啟用下列 ASP.NET 的 AJAX 功能:
·Microsoft AJAX Library 的用戶端指令碼功能和要發送到瀏覽器的任何自訂指令碼。
·部分頁呈現,允許單獨重新整理頁面上的地區而無需回傳。ASP.NET UpdatePanel、UpdateProgress 和 Timer 控制項需要 ScriptManager 控制項才能支援部分頁呈現。
·Web 服務的 JavaScript 代理類,允許您使用用戶端指令碼來訪問 Web 服務和 ASP.NET 頁中特別標記的方法。它通過將 Web 服務和頁方法作為強型別對象公開來達到此目的。
·JavaScript 類,用於訪問 ASP.NET 身分識別驗證、設定檔和角色應用程式服務。
當頁包含一個或多個 UpdatePanel 控制項時,ScriptManager 控制項將管理瀏覽器中的部分頁呈現。該控制項與頁生命週期進行互動,以更新位於 UpdatePanel 控制項內的部分頁。
ScriptManager 控制項的 EnablePartialRendering 屬性確定某個頁是否參與部分頁更新。預設情況下,EnablePartialRendering 屬性為 true。因此,預設情況下,當向頁添加 ScriptManager 控制項時,將啟用部分頁呈現。
1、處理部分頁呈現錯誤
在部分頁呈現期間,可通過執行以下操作來處理錯誤:
·需要設定 AllowCustomErrorsRedirect 屬性。當非同步回傳過程中發生錯誤時,此屬性將決定如何使用 Web.config 檔案的自訂錯誤部分。
·處理 ScriptManager 控制項的 AsyncPostBackError 事件,該事件在非同步回傳期間出現頁錯誤時引發。
·設定 AsyncPostBackErrorMessage 屬性,該屬性是發送到瀏覽器的錯誤訊息。
2、使用類型系統擴充
Microsoft AJAX Library 可向 JavaScript 添加類型系統擴充,以提供命名空間、繼承、介面、枚舉、映射以及字串和數組的 Helper 函數。這些擴充可以在用戶端指令碼中提供與 .NET Framework 的功能類似的功能。利用這些擴充,可按一種結構化方式編寫支援 AJAX 的 ASP.NET 應用程式,這不僅能提高可維護性,還使添加功能和功能分層的操作更容易。向 ASP.NET 網頁添加 ScriptManager 控制項自動包括類型系統擴充,使您能夠在用戶端指令碼中使用該庫。
3、註冊自訂指令碼
使用 ScriptManager 控制項可管理您為參與部分頁更新的控制項建立的資源。這些資源套件括指令碼、樣式、隱藏欄位和數組。ScriptManager 控制項的 Scripts 集合中針對瀏覽器中可用的每個指令碼包含一個 ScriptReference 對象。可以以聲明方式或編程方式指定指令碼。
ScriptManager 控制項還公開一些註冊方法,您可使用這些方法以編程方式管理用戶端指令碼和隱藏欄位。當為支援部分頁更新的指令碼或隱藏欄位註冊時,必須調用 ScriptManager 控制項的註冊方法。(若要為部分頁更新不需要的指令碼註冊,請使用 ClientScriptManager 類的方法。)
說明: 頁上使用 ScriptManager 控制項註冊的任何指令碼以及所有事件處理指令碼必須位於頁上的 form 元素內。否則,將不會註冊或執行指令碼。
4、註冊 Web 服務
若要註冊想要從支援 AJAX 的 ASP.NET 頁調用的 Web 服務,請通過將該 Web 服務添加到 ScriptManager 控制項的 Services 集合來註冊它。ASP.NET AJAX Framework 為 Services 集合中的每個 ServiceReference 對象產生一個用戶端代理對象。這些代理類及其強型別成員將簡化從用戶端指令碼使用 Web 服務的過程。
可以以編程方式將 ServiceReference 對象添加到 Services 集合,以便在運行時為 Web 服務註冊。
5、從用戶端指令碼使用身分識別驗證、設定檔和角色服務
Microsoft AJAX Library 包含用於從 JavaScript 直接調用 ASP.NET 2.0 Forms 身分識別驗證、設定檔和角色應用程式服務的代理類。如果要使用自訂驗證服務,則可通過使用 ScriptManager 控制項來為該服務註冊。有關更多資訊,請參見將 Forms 身分識別驗證用於 ASP.NET AJAX、將設定檔資訊與 ASP.NET AJAX 一起使用和通過 ASP.NET AJAX 使用角色資訊。
6、ScriptManagerProxy 類
只能向頁添加 ScriptManager 控制項的一個執行個體。該頁可以直接包含該控制項,也可以將其間接包含在嵌套的組件中,如使用者控制項、主版頁面的內容頁或嵌套的主版頁面。如果頁已包含 ScriptManager 控制項,但嵌套的組件或父組件需要 ScriptManager 控制項的其他功能,則該組件可以包含 ScriptManagerProxy 控制項。例如,ScriptManagerProxy 控制項使您能夠添加特定於嵌套的組件的指令碼和服務。
轉載:http://blog.csdn.net/dodream/archive/2009/12/22/5058142.aspx