HOW TO:判斷是否可以使用 ASP.NET AJAX 功能
更新:2007 年 11 月
ASP.NET AJAX 功能要求 System.Web.Extensions 組件必須安裝在裝載 Web 應用程式之伺服器的全域組件快取 (GAC) 中。如果組件可用的話,App_Code 資料夾中的應用程式或任何相關聯的控制項,或是 Bin 資料夾中的組件都可以使用 AJAX 功能。例如,它們可以註冊指令碼或建立 UpdatePanel 控制項。
本主題說明兩個工作:
如何使用反映 (Reflection) 來檢查 System.Web.Extensions 組件。當您建立能夠使用的自訂控制項 (不管是否安裝了 ASP.NET AJAX) 時,這個檢查就會很有用。
如何使用 ScriptManager 類別的 GetCurrent 方法來判斷是否已在個別網頁中啟用 AJAX 功能。這個方法很有用,因為非同步回傳所使用的指令碼必須向 ScriptManager 控制項註冊。否則,指令碼會向 ClientScriptManager 控制項註冊。
如需 ASP.NET 中有關 AJAX 功能的詳細資訊,請參閱 UpdatePanel 控制項概觀和網頁局部呈現概觀。
若要使用反映來判斷是否已安裝 ASP.NET AJAX
使用下列程式碼來判斷 ASP.NET AJAX 是否已安裝在全域組件快取中。
Private Shared ReadOnly ReflectionLock As Object = New Object() SyncLock ReflectionLock Dim scriptManagerType = _ Type.GetType( _ "System.Web.UI.ScriptManager, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35", _ False) If Not (scriptManagerType Is Nothing) Then ' ASP.NET AJAX is installed. Else ' ASP.NET AJAX is not installed. End If End SyncLock
Private static readonly object ReflectionLock = new object(); Lock (ReflectionLock) { Type scriptManagerType = Type.GetType( "System.Web.UI.ScriptManager, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35", false); if (scriptManagerType != null) // ASP.NET AJAX is installed. else // ASP.NET AJAX is not installed.
}
注意事項: 確定您已將 Version 屬性設定為您要檢查的正確組件版本號碼。
檢查網頁是否已啟用 AJAX 功能
即使 Web 應用程式已經啟用 ASP.NET AJAX 功能,您還是必須檢查個別網頁是否已經啟用 AJAX 功能。
若要判斷 Web 網頁是否已啟用 AJAX 功能
使用下列程式碼來判斷網頁是否已啟用 AJAX 功能。
Dim sm as ScriptManager = ScriptManager.GetCurrent(Page) If (sm is Nothing) ' ASP.NET AJAX functionality is not enabled for the page. Else ' ASP.NET AJAX functionality is enabled for the page. End If
ScriptManager sm = ScriptManager.GetCurrent(Page) if (sm == null) { // ASP.NET AJAX functionality is not enabled for the page. } else { // AJAX functionality is enabled for the page. }
注意事項: 若要判斷網頁是否支援網頁局部呈現,您可以修改此程式碼以使用 ScriptManager 控制項的 EnablePartialRendering 和 SupportsPartialRendering 屬性。