Gewusst wie: Bestimmen, ob ASP.NET AJAX-Funktionalität verfügbar ist
Aktualisiert: November 2007
ASP.NET-AJAX-Features erfordern es, dass die System.Web.Extensions-Assembly im globalen Assemblycache (GAC) des Servers installiert ist, auf dem die Webanwendung gehostet wird. (-:If the assembly is available, your application and any associated controls in the App_Code folder or in an assembly the Bin folder can use AJAX features.)=0%(Wenn die Assembly verfügbar ist, können die Anwendung sowie alle zugeordneten Steuerelemente im Ordner App_Code oder im Ordner Bin der Assembly die AJAX-Features nutzen.:-) Zum Beispiel können sie Skripts registrieren oder UpdatePanel-Steuerelemente erstellen.
In diesem Thema werden zwei Aufgaben beschrieben:
Das Verwenden der Reflektion zum Überprüfen der System.Web.Extensions-Assembly. Diese Überprüfung ist nützlich, wenn Sie benutzerdefinierte Steuerelemente erstellen, die unabhängig davon funktionieren, ob ASP.NET-AJAX installiert ist.
Verwenden der GetCurrent-Methode der ScriptManager-Klasse, um zu bestimmen, ob AJAX-Features auf einer bestimmten Seite aktiviert sind. Dies ist hilfreich, weil Skripts, die in asynchronen Postbacks verwendet werden, beim ScriptManager-Steuerelement registriert sein müssen. Andernfalls können die Skripts beim ClientScriptManager-Steuerelement registriert werden.
Weitere Informationen zur AJAX-Funktionalität in ASP.NET finden Sie unter Übersicht über das UpdatePanel-Steuerelement und Übersicht über das Teilrendering von Seiten.
So verwenden Sie die Reflektion, um zu bestimmen, ob ASP.NET-AJAX installiert ist
Verwenden Sie den folgenden Code, um zu bestimmen, ob ASP.NET-AJAX im globalen Assemblycache installiert ist.
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.
}
Hinweis: Stellen Sie sicher, dass Sie das Version-Attribut auf die richtige Versionsnummer der Assembly setzen, für die Sie eine Überprüfung durchführen.
Überprüfen, ob die AJAX-Funktionalität für eine Seite aktiviert ist
Auch wenn die ASP.NET-AJAX-Funktionalität für eine Webanwendung aktiviert ist, müssen Sie ggf. prüfen, ob die AJAX-Funktionalität für eine bestimmte Seite aktiviert ist.
So bestimmen Sie, ob die AJAX-Funktionalität für eine Webseite aktiviert ist
Verwenden Sie den folgenden Code, um zu bestimmen, ob die AJAX-Funktionalität für eine Seite aktiviert ist.
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. }
Hinweis: Um zu bestimmen, ob das Teilrendering für Seiten für eine Seite unterstützt wird, können Sie diesen Code so ändern, dass die Eigenschaften EnablePartialRendering und SupportsPartialRendering des ScriptManager-Steuerelements verwendet werden.