Procedura: determinare se la funzionalità ASP.NET AJAX è disponibile
Aggiornamento: novembre 2007
Le funzionalità ASP.NET AJAX richiedono che l'assembly System.Web.Extensions sia installato nella Global Assembly Cache (GAC) del server dove l'applicazione Web è ospitata. Se l'assembly è disponibile, l'applicazione e i controlli associati nella cartella App_Code o in un assembly nella cartella Bin possono utilizzare le funzionalità AJAX. Ad esempio, possono registrare script o creare controlli UpdatePanel.
In questo argomento vengono descritte due attività:
Come utilizzare la reflection per verificare l'assembly System.Web.Extensions. Questo controllo è utile quando si creano controlli personalizzati che funzionano a prescindere se ASP.NET AJAX sia installato o meno.
Come utilizzare il metodo GetCurrent della classe ScriptManager per determinare se le funzionalità AJAX sono attivate in una specifica pagina. Ciò si dimostra utile perché gli script utilizzati nei postback asincroni devono essere registrati con il controllo ScriptManager. In caso contrario, gli script possono essere registrati con il controllo ClientScriptManager.
Per ulteriori informazioni sulle funzionalità AJAX in ASP.NET, vedere Cenni preliminari sui controlli UpdatePanel e Cenni preliminari sul rendering a pagina parziale.
Per utilizzare la reflection per determinare se ASP.NET AJAX è installato
Utilizzare il codice seguente per determinare se ASP.NET AJAX è installato nella Global Assembly Cache.
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.
}
Nota: Accertarsi di avere impostato l'attributo Version sul numero di versione corretto dell'assembly che si sta verificando.
Verifica che la funzionalità AJAX sia attivata per una pagina
Anche se la funzionalità ASP.NET AJAX è attivata per un'applicazione Web, è possibile che occorra controllare se la funzionalità AJAX è attivata per una specifica pagina.
Per determinare se la funzionalità AJAX è attivata per una pagina Web
Utilizzare il codice seguente per determinare se la funzionalità AJAX è attivata per una pagina.
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. }
Nota: Per determinare se per una pagina è supportato il rendering a pagina parziale, è possibile modificare il codice affinché vengano utilizzate le proprietà EnablePartialRendering e SupportsPartialRendering del controllo ScriptManager.