Partilhar via


Script de Cliente em Páginas da Web ASP.NET

Aplicativos Web do ASP.NET não estão limitados a ferramentas e linguagens com base no servidor.Você pode incluir ECMAScript (JavaScript ou JScript) nas suas páginas Web do ASP.NET para criar uma rica funcionalidade com base no navegador.Uma grande variedade de recursos para suporte de script de cliente está disponível no ASP.NET.

Uma opção é criar e adicionar trechos individuais de script de cliente a páginas Web do ASP.NET para dar suporte ao comportamento do navegador que você cria para o seu aplicativo.Essa opção é prática se você quiser incluir apenas umas pequenas partes de código JavaScript ou se você estiver trabalhando com código JavaScript que você já possua.Essa opção também ajuda a manter o tamanho da sua página Web do ASP.NET em um nível mínimo.

Como alternativa, você pode tirar proveito dos poderosos recursos do AJAX do ASP.NET.Esses recursos AJAX incluem uma estrutura completa que suporta o seguinte:

  • Programação orientada a objetos em JavaScript.

  • Postbacks assíncronos.

  • Serviços Web do aplicativo para autenticação e perfis.

  • Controles de servidor que gerenciam script de cliente com depuração estendida e suporte a rastreamento.

Usar recursos AJAX ASP.NET permite que você se beneficie das funcionalidades do JavaScript com menos codificação manual.Ele fornece funcionalidade estendida JavaScript, e ele fornece uma estrutura para criação de funcionalidade de cliente que está integrada no ASP.NET.

Este tópico fornece uma visão geral das opções para adicionar páginas Web de script de cliente do ASP.NET.Ele contém as seguintes seções:

  • Cenários

  • Incluindo Script de Cliente Personalizado em Páginas ASP.NET

  • Estendendo JavaScript com Recursos AJAX ASP.NET

  • Controles de Servidor do ASP.NET que Dependem de Script de Cliente

  • Adicionando Eventos de Script de Cliente aos Controles de Servidor do ASP.NET

  • Fazendo Referência aos Controles de Servidor no Script de Cliente

  • Gerando Eventos de Clique de Cliente para Controles do Servidor

  • A Comunicação Entre Script de Cliente e Código de Servidor

  • Criando Componentes de Script de Cliente

  • Adicionar Funcionalidade de Cliente aos Controles de Servidor

Cenários

Use script de cliente quando desejar fazer o seguinte:

  • Melhorar a experiência do usuário com Web pages que sejam mais ricas, que respondam mais a ações do usuário e que se comportem como aplicativos cliente tradicionais.Por exemplo, você pode usar script de cliente para verificar a entrada do teclado em uma caixa de texto assim que cada caractere é digitado.

  • Adicionar funcionalidade AJAX às páginas Web do ASP.NET, o que permite que você faça o seguinte:

    • Reduzir as atualizações de página inteira e evitar tremulação de página, manipulando elementos DOM dinamicamente na página.

    • Atualizar e gerenciar a interface do usuário (UI) sem solicitar um postback ao servidor.

    • Organize o seu código em componentes de cliente.Componentes de cliente são objetos reutilizáveis que encapsulam o JavaScript que é baseado em Microsoft AJAX Library.Componentes de cliente também podem ser gerenciados por controles laterais personalizados de servidor ou associados a controles de servidor existentes para adicionar funcionalidades de cliente.

Incluindo Script de Cliente Personalizado em Páginas ASP.NET

Como páginas Web do ASP.NET apenas processam marcação HTML, você pode adicionar o seu próprio script de cliente a páginas ASP.NET.Script de cliente é suportado em páginas ASP.NET na medida em que o navegador solicita que a página suporte script de cliente.Se a página estiver sendo executada em um navegador em um celular ou outro dispositivo, o grau de suporte para script de cliente varia, dependendo do navegador.

Há várias opções para incluir script de cliente em páginas ASP.NET:

  • Você pode incluir script de cliente estaticamente em um bloco script que inclua o código ou que use um atributo include para fazer referência a um arquivo JavaScript (.js).Use esta opção para inserir blocos de script ou arquivos JavaScript contendo script de cliente que você não tenha que criar dinamicamente, e que não exijam alguma funcionalidade adicional AJAX fornecida por Microsoft AJAX Library.

  • Você pode criar e adicionar, dinamicamente, script de cliente a páginas Web do ASP.NET usando a classe ClientScriptManager.Use esta opção quando desejar criar scripts que dependam de informações que estejam disponíveis somente em tempo de execução.

  • Se você planeja tirar proveito dos recursos AJAX do ASP.NET, você pode gerenciar arquivos de script de cliente usando o controle de servidor ScriptManager.O controle de servidor ScriptManager também garante que o Microsoft AJAX Library é carregado no navegador antes de executar os seus scripts.Para obter mais informações, consulte Visão geral do ASP.NET AJAX.

Incluindo Blocos de Script do Cliente Estáticos

Você pode adicionar blocos script a uma página ASP.NET da mesma forma que faria para qualquer página HTML.Você pode usar script de cliente para escrever manipuladores de eventos para eventos de cliente como o evento onload da página.Quando uma página ASP.NET está sendo executada no navegador, os elementos de marcação na página são endereçáveis no script de cliente.Eles geram todos os eventos do cliente que eles fazem em uma página HTML.

Observação:

Você pode fazer referência a controles de servidor ASP.NET no script de cliente.Para obter mais informações, consulte Referenciando Controles de Servidor no Script do Cliente posteriormente neste tópico.

Uma página Web do ASP.NET também pode acessar um arquivo de script referindo-se a ele no atributo src de uma marca <script>, como no exemplo a seguir:

<script type="text/javascript" src="MyScript.js"></script>

Manter scripts de cliente em arquivos externos .js em vez de mantê-los em páginas pode ajudar a organizar os seus scripts de cliente.Também pode ser mais fácil de gerenciá-los para controle de versão e mais fácil de compartilhá-los entre páginas.

Arquivos .js externos são armazenados em cache pelo navegador, semelhante à forma como páginas da Web e imagens são armazenadas em cache.Após o script ser carregado pelo navegador como um arquivo externo, ele fica disponível no cache para qualquer outra página da Web que o solicitar.Isso pode ajudar a aumentar o desempenho do aplicativo Web.

Criando Script de Cliente Dinamicamente

Em muitos casos, você pode criar o script de cliente para a sua página declarativamente, normalmente como um bloco de script.No entanto, você pode criar script de cliente dinamicamente.Isso é útil se o script depender de informações que estejam disponíveis somente em tempo de execução.Por exemplo, você pode inserir script de cliente em uma página que endereçe um controle de servidor (ID) cujo nome não seja conhecido até que o aplicativo seja executado, ou você pode criar script que dependa de valores que você obtenha de um usuário.

Você pode criar e inserir script de cliente dinamicamente em uma página processada chamando métodos da classe ClientScriptManager, como a seguir:

O exemplo a seguir mostra como adicionar script de cliente gerado dinamicamente à página.O código verifica se uma caixa de seleção nomeada checkDisplayCount está selecionada.Se sim, o código executa as seguintes tarefas:

  • Ele cria uma função de script de cliente que usa um elemento span para exibir o número de caracteres em um controle TextBox chamado TextBox1.

  • Ele adiciona um evento do cliente ao controle TextBox.

  • Ele gera o elemento span.

O código presume que a página contém uma caixa de seleção chamada checkDisplayCount cuja propriedade AutoPostBack está definida como true e um controle PlaceHolder chamado PlaceHolder1.

Protected Sub Page_Load(ByVal sender As Object, _
        ByVal e As System.EventArgs)
    If checkDisplayCount.Checked Then
        Dim scriptText As String = ""
        scriptText &= "function DisplayCharCount(){"
        scriptText &= "   getElementByID("spanCounter").innerText = " & _
            "document.forms[0].TextBox1.value.length"
        scriptText &= "}"
        ClientScriptManager.RegisterClientScriptBlock(Me.GetType(), _
            "CounterScript", scriptText, True)
        TextBox1.Attributes.Add("onkeyup", "DisplayCharCount()")
        Dim spanLiteral As New LiteralControl()
        spanLiteral.Text = "<span id=""spanCounter""></span>"
        PlaceHolder1.Controls.Add(spanLiteral)
    End If
End Sub

void Page_Load(object sender, EventArgs e)
{
    if(checkDisplayCount.Checked)
    {
        String scriptText = "";
        scriptText += "function DisplayCharCount(){";
        scriptText += "   spanCounter.innerText = " + 
            " document.forms[0].TextBox1.value.length";
        scriptText += "}";
        ClientScriptManager.RegisterClientScriptBlock(this.GetType(), 
           "CounterScript", scriptText, true);
        TextBox1.Attributes.Add("onkeyup", "DisplayCharCount()");
        LiteralControl spanLiteral = new 
            LiteralControl("<span id=\"spanCounter\"></span>");
        PlaceHolder1.Controls.Add(spanLiteral);
    }
}

Para obter mais informações, consulte Como: Adicionar script de cliente dinamicamente a páginas da Web do ASP.NET.

Para métodos da classe ClientScriptManager, você fornece um tipo ao qual o bloco de script é associado e você concede ao bloco de script uma chave.Fornecer um tipo ajuda a evitar colisões se tanto uma página quanto controles (controles personalizados ou de usuário) adicionem blocos de script na mesma página.Usar uma chave ajuda a evitar duplicação.Se você chama um dos métodos para adicionar script, e um script com a mesma chave e o mesmo tipo já existir, o script não é adicionado novamente.

O tipo e a chave que você fornece ajudam a evitar duplicação desnecessária.Portanto, você geralmente não precisa determinar explicitamente se já existe um bloco de script.No entanto, se for útil em seu aplicativo verificar se um bloco de script existe, você pode chamar os métodos a seguir:

Adicionando Script de Cliente Usando o Controle ScriptManager

Se você estiver usando recursos AJAX do ASP.NET, o controle ScriptManager fornece uma maneira para que você adicione arquivos de script em uma página.Isso inclui arquivos de script estático (arquivos .js) no disco e arquivos de script que estão incorporados como recursos em um conjunto de módulos (assembly).Você pode especificar arquivos de script declarativamente no controle.Como alternativa, você pode usar métodos de inscrição do controle ScriptManager que permitem que você gerencie arquivos existentes de script de cliente por meio de programação, e que permitem que você trabalhe com scripts para suporte de atualização de página parcial.

Para obter uma visão geral do controle ScriptManager, consulte ScriptManager Control Overview.Para obter informações sobre como incorporar um arquivo JavaScript como um recurso em um assembly e como consumi-lo em uma página da Web, consulte Demonstra Passo a passo: Incorporação de um arquivo JavaScript sistema autônomo um recurso em um assembly.

Observação:

Se você estiver usando recursos de cliente AJAX do ASP.NET, mas não recursos baseados em servidor, use métodos da classe ClientScriptManager para inserir scripts em uma página Web do ASP.NET.Por exemplo, se você não estiver usando o controle UpdatePanel ou os recursos de localização para scripts, você não precisa do controle ScriptManager.Portanto, você não pode chamar seus métodos para inserir script de cliente na página.Usar métodos da classe ClientScriptManager é geralmente mais eficiente do que usar métodos do controle ScriptManager.Isso ocorre porque os métodos da classe ClientScriptManager não exigem processamento extra para recursos baseados no servidor que são suportados pelo controle ScriptManager.Se você precisa criar script dinamicamente (em vez de simplesmente gerenciar script existente), use a classe ClientScriptManager para inserir script de cliente em uma página.Por exemplo, use a classe ClientScriptManager se você quiser criar script de cliente programaticamente com base nas informações que um arquivo de script pré-existente não consegue referenciar.

Estendendo JavaScript com Recursos AJAX ASP.NET

O ASP.NET suporta as funcionalidade AJAX, o que permite que você use script de cliente para adicionar recursos ricos a um página Web do ASP.NET.Isso inclui postagens assíncronas, uma interface do usuário que responde bem, etc.Funcionalidade AJAX é implementada usando Microsoft AJAX Library, que consiste de bibliotecas de scripts de cliente que incorporam ECMAScript (JavaScript) de navegador cruzado e tecnologias HTML (DHTML) dinâmicas.Funcionalidade AJAX é integrada com a plataforma de desenvolvimento baseada em servidor do ASP.NET.

Você pode usar o sistema de tipo Microsoft AJAX Library, recursos orientados a objeto e extensões para objetos JavaScript para fornecer os seguintes recursos para criação de script de cliente personalizado:

  • Namespaces

  • Herança

  • Interfaces

  • Enumerações

  • Reflexão

  • Auxiliares de Depuração

  • Rastreamento

  • Manipulação de exceção digitada

  • Métodos auxiliares para sequências de caracteres e vetores.

    Observação:

    Você pode usar Microsoft AJAX Library, mesmo se você não pretende usar os recursos AJAX baseado em servidor do ASP.NET.

Para obter mais informações sobre como o Microsoft AJAX Library estende o JavaScript, consulte os seguintes tópicos:

Compatibilidade dos Recursos AJAX do Navegador

Uma camada de compatibilidade do navegador em Microsoft AJAX Library fornece compatibilidade com scripts AJAX para os navegadores mais usados (incluindo o Microsoft Internet Explorer, Mozila Firefox e Apple Safari).Isto permite que você escreva o mesmo script independentemente de qual navegador suportado você pretende atender.Para obter mais informações, consulte Visão geral do ASP.NET AJAX.

Controles de Servidor do ASP.NET que Dependem de Script de Cliente

Some ASP.NET server controls depend on client script for their functionality.Por exemplo, o controle LinkButton requer script de cliente para suportar o seu comportamento de postagem.O script de cliente necessário para controles de servidor Web do ASP.NET é adicionado automaticamente à página quando a página é processada.O script de cliente gerado para esses controles é independente de qualquer script de cliente que você mesmo cria.

Para obter mais informações, consulte ASP.NET Web Server Controls that Use Client Script.

Adicionando Eventos de Script de Cliente aos Controles de Servidor do ASP.NET

Controles ASP.NET processam como elementos na página.(Os elementos exatos processados por um controle dependem da linguagem de marcação para a página, o que pode incluir HTML, XHTML ou outra linguagem.) Você pode, portanto, adicionar manipulação de eventos de script de cliente para controles como você faria com qualquer elemento na página.No entanto, em alguns casos, você deve saber como o controle processa sua saída e quais atributos o controle reserva para si mesmo.

Para mais informações, consulte: Como: Adicionar cliente Script Events para controles de servidor Web do ASP.NET.

Adicionando Manipuladores de Eventos de Cliente Declarativamente

Na marcação para controles de servidor do ASP.NET, você define valores de propriedade usando atributos.Por exemplo, para definir a propriedade Text de um controle TextBox, você pode criar a marcação como a seguir:

<asp:textbox id="TextBox1"  text="Sample Text" />
Observação de segurança:

Um TextBox aceita entrada do usuário, que é uma ameaça potencial de segurança.Por padrão, páginas Web ASP.NET validam se as entradas de usuário não incluem scripts ou elementos HTML.Para obter mais informações, consulte Visão Geral de Scripts Maliciosos.

Se você incluir um atributo que não mapeia a uma propriedade do controle, o ASP.NET ignora o atributo durante o processamento do servidor.Ele o passa tal como está como parte da marcação gerada pelo controle para o navegador.Por exemplo, o controle TextBox não tem nenhuma propriedade chamada onkeyup.Portanto, se você incluir um atributo onkeyup na marcação de um controle TextBox, o atributo é passado para o navegador.Esse comportamento permite que você adicione ligações de eventos aos controles do servidor, declarando-os na marcação.Por exemplo, a marcação a seguir para um controle TextBox faz com que a caixa de texto exiba o comprimento do texto atual em um elemento span chamado spanCounter sempre que o usuário pressiona uma tecla na caixa de texto:

<asp:textbox id="TextBox1"  text="Sample Text" 
  onkeyup="spanCounter.innerText=this.value.length;" />

Como alternativa, o evento poderia chamar um método definido no script de cliente em outro lugar na página:

<asp:textbox id="TextBox1"  text="Sample Text" 
  onkeyup="DisplayCount(this);" />

Observe que a linguagem que você utiliza para o código do servidor (Visual Basic ou C#) não afeta o script de cliente, que é sempre escrito em ECMAScript (JScript ou JavaScript).

Para obter mais informações, consulte Como: Adicionar cliente Script Events para controles de servidor Web do ASP.NET.

Adicionando Atributos no Código do Servidor

Além disso, para adicionar atributos passantes declarativamente a um controle, você pode adicionar atributos programaticamente, usando código do servidor.Isso é útil se o valor do atributo a adicionar é conhecido somente em tempo de execução.Para obter detalhes, consulte:Como: conjunto atributos HTML para controles em páginas da Web do ASP.NET.

Fazendo Referência aos Controles de Servidor no Script de Cliente

Quando um controle de servidor ASP.NET é processado, a propriedade ClientID do controle é processada na página tanto como o atributo id quanto como o atributo name do elemento resultante.(A propriedade ClientID é gerada automaticamente a partir da propriedade ID que você definiu.) Por exemplo, você pode criar o controle de servidor ASP.NET a seguir:

<asp:textbox id="TextBox1"  text="Sample Text" />

A propriedade ClientID é definida como TextBox1, e o elemento resultante em um navegador baseado em HTML seria semelhante ao seguinte:

<input name="TextBox1" type="text" value="Sample Text" id="TextBox1" />
Observação:

O elemento form processa somente um atributo ID, não um atributo name.

Portanto, você pode fazer referência ao controle de servidor em script de cliente usando esses atributos.Você normalmente endereça o controle usando uma referência totalmente qualificada no script de cliente.Se o controle é um filho do elemento form na página, você geralmente referencia o controle no script de cliente usando a sintaxe conforme mostrado no exemplo a seguir:

var tb1 = document.getElementById("TextBox1");
tb1.value = "New value";

O exemplo a seguir pressupõe que o elemento form na página tenha tido seu atributo id definido como form1.

document.form1.TextBox1.value = "New value";

A sintaxe exata necessária para fazer referência a um controle de servidor depende de qual controle você está usando e se ele é um filho de outro controle.Se você não tiver certeza de como referenciar um controle, pode ser útil executar a página, exibir sua fonte e determinar como o controle foi processado.

Referenciando Controles Processados Dentro de Outros Controles

Alguns controles processam controles filho para a página.Isso inclui controles de lista de dados, como os controles ListView, GridView, DetailsView, FormView, DataList e Repeater, controles de usuário e controles Web Parts.

Nesses casos, os controles filho podem não ter identificações exclusivas.Isso pode ocorrer porque os controles filho são definidos em um modelo que gera novas instâncias de controle para cada linha de dados (controles de lista de dados).Ou pode ser porque o controle pai pode ser adicionado à página de uma fonte externa (controles de usuário e controles Web Parts).Esses controles pai são, portanto, contêiners de nomeação (Eles implementam INamingContainer).Um contêiner de nomeação garante que seus controles filho tenham identificações exclusivas na página.

Por exemplo, você pode criar uma propriedade ItemTemplate no controle DataList.No modelo, você pode adicionar um controle CheckBox cuja identificação é definida como checkEnabled.Quando o controle DataList é processado, um novo controle checkEnabled é processado para cada item de dados.A página processada não deve conter várias instâncias de um elemento chamado checkEnabled.Portanto, o controle DataList cria uma identidade exclusiva para cada um dos seus controles filho.

Identidades exclusivas para controles filho de um contêiner de nomeação são geradas processando duas propriedades.Para cada controle filho:

  • A propriedade UniqueID do controle é processada como o atributo name.

  • A propriedade ClientID do controle é processada como o atributo id.

Ambas as propriedades ClientID e UniqueID são baseadas na propriedade ID original, redefinida com informações suficientes para garantir que o resultado seja exclusivo na página.O valor de ClientID (o atributo id no elemento processado) pode ser referenciado no script de cliente.

Se você exibir uma página que contenha um contêiner de nomeação no navegador, você pode exibir a fonte da página para ver as identificações exclusivas geradas como os atributos name e id para os controles filho do contêiner de nomeação.No entanto, recomendamos que você não confie nas referências diretas às identificações como você as vê no navegador.A fórmula usada para gerar identificações exclusivas para controles filho pode mudar.Em vez disso, obtenha o valor da propriedade ClientID do controle filho no código do servidor e use esse valor para fazer referência ao controle filho.Por exemplo, você pode criar script de cliente dinamicamente na sua página.Se o script de cliente referencia um controle filho, obtenha a propriedade ClientID do controle filho e construa-a em seu script dinâmico.

Gerando Eventos de Clique de Cliente para Controles do Servidor

Conforme observado anteriormente, você pode adicionar um evento de clique de cliente para a maioria dos controles de servidor do ASP.NET adicionando o atributo onclick à marcação do controle.No entanto, alguns controles reservam o atributo onclick para definir a vinculação ao evento do servidor.Isto inclui os controles Button, LinkButton e ImageButton.Nesses controles, você não pode usar o atributo onclick declarativamente para adicionar um manipulador de scripts de cliente ao controle.

Você pode adicionar um manipulador de scripts de cliente para o evento de clique de duas maneiras:

  • Defina a propriedade OnClientClick do controle para o script a ser executado.Quando o controle do botão processa, o valor OnClientClick é transformado em um atributo onclick.

  • Adicione um atributo onclick programaticamente, chamando o método Add da coleção Attributes do controle.

    Observação:

    Não é possível adicionar um atributo onclick programaticamente a um controle de servidor se o controle já usar onclick como parte de sua funcionalidade básica, como o LinkButton.

O exemplo de código a seguir mostra um controle Button que gera eventos Click tanto do lado do cliente como do lado do servidor:

<asp:button id="Button1" 
   
  OnClientClick="return confirm('Ok to post?')" 
  onclick="Button1_Click" 
  Text="Click!" />

A Comunicação Entre Script de Cliente e Código de Servidor

Além de usar postagens padrão, as páginas Web do ASP.NET podem comunicar-se entre script de cliente e código de servidor de várias maneiras.Recursos AJAX do ASP.NET como o controle de servidor UpdatePanel automatizam atualizações de página parcial assíncronas para você.Além disso, o ASP.NET AJAX oferece suporte à chamada de serviços da Web de forma assíncrona.

Se você não usar os recursos AJAX do ASP.NET, você pode chamar um retorno de chamada personalizado de cliente diretamente e compartilhar informações entre o navegador e o servidor por uma variedade de métodos.A seção a seguir fornece informações sobre as opções disponíveis.

Chamando Código de Servidor Diretamente do Script de Cliente

O script de cliente pode chamar código do servidor diretamente, implementando um retorno de chamada de cliente.Em uma sequência comum para páginas Web do ASP.NET, cada ação do usuário que executa o código do servidor requer um postback.No entanto, você também pode chamar processamento de servidor a partir do navegador sem um postback completo.Nesse cenário, o navegador não envia a página inteira para o servidor e, em seguida, recarrega-o quando o servidor responde.Em vez disso, o navegador envia uma pequena quantidade de dados para o servidor.Quando o servidor envia uma resposta, o script de cliente no navegador processa os dados retornados sem recarregar a página.Durante o processamento do servidor, todos os estados do cliente, como as variáveis locais são mantidos.Esse processo é conhecido como um postback assíncrono e é chave para o processamento de página parcial.

Você pode chamar métodos do servidor a partir do script de cliente sem um postback das seguintes maneiras:

  • Use o controle de servidor UpdatePanel do ASP.NET.Esse controle é parte da funcionalidade AJAX do ASP.NET.Ele permite que você definir uma região de uma página que será atualizada com uma atualização de página parcial.Quando você usa o controle UpdatePanel, você não precisa escrever nenhum script de cliente para invocar atualizações de página parcial assíncronas.Para obter mais informações, consulte Visão geral de renderização de página parcial e Visão geral sobre controle UpdatePanel.

  • Use o suporte do ASP.NET AJAX para comunicação de serviço Web para escrever script de cliente que chame um método do servidor Web.Essa abordagem é conceitualmente semelhante a escrever o seu próprio retorno de chamada do script de cliente para chamar um método do servidor Web.No entanto, o Microsoft AJAX Library trata os detalhes de chamar o método do servidor e fornece uma biblioteca de script de cliente mais robusta para fazer e processar a chamada.Para obter mais informações, consulte Serviços Web em ASP.NET AJAX.

  • Implemente um retorno de chamada de cliente.Nesse cenário, você escreve o código de cliente que envia a solicitação e que processa o resultado.A abordagem mais comum é criar uma função de chamada no script de cliente e uma função de retorno de chamada que é chamada quando o servidor retorna os resultados.Para mais informações, consulte: Implementando Callbacks de Clientes Através de Programação Sem Postbacks nas Páginas ASP.NET.

Cada abordagem tem vantagens.Criar o seu próprio retorno de chamada de cliente geralmente oferece a menor sobrecarga e o menor tamanho de página.Usar o controle de servidor UpdatePanel permite que você implemente atualizações de página parcial sem escrever nenhum script de cliente.Usar o AJAX para chamar serviços da Web também elimina a maior parte do script de cliente que você escreveria para fazer chamadas assíncronas de serviço Web.

Compartilhando Dados Usando um Controle HiddenField

Você pode compartilhar informações entre script de cliente e código do servidor adicionando um controle HiddenField à página.Você pode referenciar o campo oculto em script de cliente por sua ID.Você também pode fazer referência a campo oculto no código do servidor.Isso permite que você armazene valores em qualquer bloco de código e leia-os em outro.Para passar informações do código do servidor para o script de cliente, você pode criar um campo oculto por meio de programação, usando o método RegisterHiddenField.Esse método permite que você especifique uma identificação e um valor para o campo.Você pode usar o campo para armazenar valores dinâmicos na página de uma maneira que o script de cliente possa lê-los.

Compartilhando Dados Usando Cookies

Você também pode compartilhar valores entre o código do servidor e o código do cliente usando cookies.Para obter detalhes sobre como escrever e ler os cookies no código do servidor, consulte Como: Gravar um cookie e Como: Ler um cookie.Para obter detalhes sobre como usar JavaScript para ler e gravar os cookies, consulte JavaScript e cookies no site do MSDN.

Compartilhando Dados Durante Postbacks Assíncronos

Se você estiver usando os recursos AJAX do ASP.NET, você pode enviar dados personalizados como uma sequência de caracteres a partir do servidor para o cliente durante postagens assíncronas (processamento de página parcial) usando o método RegisterDataItem.O método RegisterDataItem permite que você use o código do servidor para registrar um campo que é anexado a um controle.Você pode acessar o valor do campo no script de cliente no navegador por meio dos objetos AJAX ASP.NET Sys.WebForms.PageLoadingEventArgs, Sys.WebForms.PageLoadedEventArgs, e Sys.WebForms.PageLoadedEventArgs.O método RegisterDataItem pode ser chamado somente durante um postback assíncrono.

Para obter informações sobre como usar o método RegisterDataItem para compartilhar dados entre o servidor e o cliente, consulte os tópicos a seguir:

Criando Componentes de Script de Cliente

Componentes de cliente são objetos reutilizáveis que encapsulam o JavaScript que é baseado em Microsoft AJAX Library.A biblioteca fornece o seguinte objeto cliente base tipos de classes: Componente (que é uma classe base para componentes não visuais), Controle, and Comportamento. Você pode derivar a partir dessas classes para fornecer funcionalidade cliente sofisticada, que inclui o seguinte:

  • Obter acesso para o ciclo de vida de um componente da inicialização para a disposição.Isso inclui eventos que são gerados quando valores de propriedade mudam.

  • Representar um elemento DOM como um objeto de cliente que tenha uma nova funcionalidade.Isso estende o comportamento de elementos DOM.Por exemplo, você pode adicionar o comportamento marca d'água, o qual pode ser anexado a uma caixa de texto existente.

Para obter mais informações, consulte os seguintes tópicos:

Adicionar Funcionalidade de Cliente aos Controles de Servidor

Quaisquer controles de servidor ASP.NET existentes ou personalizados podem ser convertidos em um controle de extensor AJAX ASP.NET.Um controle do extensor é um controle do servidor Web que usa os recursos ECMAScript (JavaScript), DHTML e AJAX do navegador Web para adicionar recursos, como interatividade e comunicação assíncrona com o servidor.

Para obter mais informações, consulte os seguintes tópicos:

Consulte também

Conceitos

Controles de Servidor Web do ASP.NET e Recursos do Navegador

Modelo de Eventos de Controle do Servidor Web ASP.NET