Compartilhar via


Como: Determine que se funcionalidade do ASP.NET AJAX está disponível

Recursos AJAX ASP.NET exigem que o conjunto System.Web.Extensions seja instalado na cache de assemblies globais (GAC) do servidor onde o aplicativo da Web é hospedado.Se ele estiver disponível, seu aplicativo e os controles associados na pasta App_Code ou em um conjunto de módulos (assembly) sa pasta Bin podem usar os recursos AJAX.Por exemplo, eles podem registrar scripts ou criar controles UpdatePanel.

Este tópico descreve duas tarefas:

  • Como usar o reflexo para verificar o assembly System.Web.Extensions.Essa verificação é útil quando você cria controles personalizados que funcionam independentemente de AJAX ASP.NET estar instalado.

  • Como usar o método GetCurrent da classe ScriptManager para determinar se os recursos AJAX estão ativados em uma página individual.Isso é útil porque scripts que são usados em postagens assíncronas devem ser registrados com o controle ScriptManager.Caso contrário, os scripts podem ser registrados com o controle ClientScriptManager.

Para obter mais informações sobre a funcionalidade de AJAX no ASP.NET, consulte Visão geral sobre controle UpdatePanel e Visão geral de renderização de página parcial.

Para usar o reflexo para determinar se o AJAX do ASP.NET está instalado

  • Use o código a seguir para determinar se o AJAX ASP.NET está instalado na cache global de assemblies.

    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.
    

    }

    Observação:

    Certifique-se de definir o atributo Version para o número de versão correto do conjunto de módulos (assembly) que você está verificando.

Verificando Se a funcionalidade de AJAX Está Ativada para uma Página

Mesmo se a funcionalidade ASP.NET AJAX estiver ativada para um aplicativo da Web, talvez você precise verificar se a funcionalidade de AJAX está ativada para uma página individual.

Para determinar se a funcionalidade de AJAX está habilitada para um página da Web

  • Use o código a seguir para determinar se a funcionalidade de AJAX está ativada para uma página.

    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.
    }
    
    Observação:

    Para determinar se o processamento parcial da página é suportado para uma página, você pode modificar este código para usar EnablePartialRendering e a propriedade SupportsPartialRendering do controle ScriptManager.

Consulte também

Conceitos

Visão geral do ASP.NET AJAX