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