Comment : déterminer si les fonctionnalités ASP.NET AJAX sont disponibles

Mise à jour : novembre 2007

Les fonctionnalités ASP.NET AJAX requièrent que l'assembly System.Web.Extensions soit installé dans le Global Assembly Cache (GAC) du serveur sur lequel est hébergée l'application Web. Si l'assembly est disponible, votre application et tous les contrôles associés dans le dossier App_Code ou dans un assembly du dossier Bin peuvent utiliser des fonctionnalités AJAX. Par exemple, ils peuvent enregistrer des scripts ou créer des contrôles UpdatePanel.

Cette rubrique décrit deux tâches :

  • Comment utiliser la réflexion pour rechercher l'assembly System.Web.Extensions. Cette recherche s'avère utile lorsque vous créez des contrôles personnalisés qui fonctionnent indépendamment du fait qu'ASP.NET AJAX soit installé ou non.

  • Comment utiliser la méthode GetCurrent de la classe ScriptManager pour déterminer si les fonctionnalités AJAX sont activées sur une page individuelle. Cette tâche s'avère utile car les scripts utilisés dans les publications (postback) asynchrones doivent être enregistrés avec le contrôle ScriptManager. Sinon, les scripts peuvent être enregistrés avec le contrôle ClientScriptManager.

Pour plus d'informations sur les fonctionnalités AJAX d'ASP.NET, consultez Vue d'ensemble du contrôle UpdatePanel et Vue d'ensemble du rendu de page partielle.

Pour utiliser la réflexion pour déterminer si ASP.NET AJAX est installé

  • Utilisez le code suivant pour déterminer si ASP.NET AJAX est installé dans le 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.
    

    }

    Remarque :

    Assurez-vous d'affecter à l'attribut Version le numéro de version correct de l'assembly que vous recherchez.

Vérification de l'activation des fonctionnalités AJAX d'une page

Même si les fonctionnalités ASP.NET AJAX sont activées pour une application Web, vous pouvez avoir besoin de vérifier si les fonctionnalités AJAX sont activées pour une page individuelle.

Pour déterminer si les fonctionnalités AJAX sont activées pour une page Web

  • Utilisez le code suivant pour déterminer si les fonctionnalités AJAX sont activées pour une page.

    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.
    }
    
    Remarque :

    Pour déterminer si une page prend en charge le rendu de page partielle, vous pouvez modifier ce code pour utiliser les propriétés EnablePartialRendering et SupportsPartialRendering du contrôle ScriptManager.

Voir aussi

Concepts

Vue d'ensemble d'ASP.NET AJAX