Compartilhar via


Como: Criar evento manipuladores em páginas da Web do ASP.NET

Quando você estiver editando uma página da Web do ASP.NET no Visual Studio, você pode criar, de diversas formas, manipuladores de eventos do servidor para controles e para a página.Algumas das maneiras dependem de qual linguagem de programação você estiver trabalhando.Você pode criar manipuladores usando os recursos do Visual Web Developer ou criando declarativamente, ou no código.

Observação:

Você também pode adicionar eventos para script de cliente, que executam quando o controle estiver sendo executado no navegador como um elemento da página.Para obter detalhes, consulte:Como: Adicionar cliente Script Events para controles de servidor Web do ASP.NET.

Se um controle suporta mais de um evento, ele está, geralmente, configurado para que um evento seja o padrão.Por exemplo, para o controle Button, o evento padrão é o evento Click.

Criando Manipuladores de Evento no Visual Web Developer

Para criar um manipulador de eventos para o evento padrão

  • No modo Design, clique duas vezes na página ou clique duas vezes no controle para o qual você deseja criar um manipulador de eventos padrão.

    O Visual Web Developer cria um manipulador para o evento padrão e abre o editor de códigos com o ponto de inserção no manipulador de eventos.

Para criar um manipulador de eventos na janela Properties

  1. No modo Design, selecione o controle para o qual você deseja criar um manipulador de eventos.

    Observação:

    Não é possível selecionar a página em modo Design, portanto, não é possível criar uma evento em nível de página usando este procedimento.Use o procedimento anterior.

  2. Em Properties, clique no símbolo de eventos.

    A janela Properties exibe uma lista de eventos para o controle selecionado.

  3. Na caixa ao lado de um nome de evento, siga um destes:

    • Clique duas vezes para criar um novo manipulador de eventos para esse evento.O desenvolveador irá nomear o manipulador utilizando a convenção IDcontrolador_evento.

    • Digite o nome do manipulador para criar.

    • Na lista suspensa, selecione o nome de um manipulador existente.

      A lista suspensa exibe uma lista de métodos que têm a assinatura correta para o evento.

    Quando você tiver terminado, o Visual Web Developer alterna para o editor de códigos e coloca o ponto de inserção no manipulador.

Para criar um manipulador de eventos no editor de códigos

  1. Alterne para o editor de códigos usando uma das seguintes técnicas:

    • Para uma página da Web de arquivo único, alterne para modo Source.

    • Para uma página code-behind, no Solution Explorer, clique com o botão direito do mouse no nome da página, e clique em View Code.

      Observação:

      Em páginas code-behind que usam C#, essa técnica não funcionará porque o nome do controle não será exibido na lista suspensa, na última etapa.Use um desses procedimentos em vez do anterior.

  2. Na parte superior da janela do editor de códigos, selecione o controle da lista suspensa localizada no lado esquerdo, e selecione o evento de lista suspensa localizado no lado direito.

    Observação:

    Eventos para o qual já existem métodos são exibidos em negrito.

Criando Manipuladores de Evento Declarativamente

Quando você usa o Visual Web Developer para criar um manipulador, o Visual Web Developer cria o manipulador esqueleto e configura o controle para chamar o manipulador.Você pode fazer o mesmo sem usar o Visual Web Developer.

Para criar um manipulador de eventos da página

  • No editor de código, criar um método com o nome Page_ evento.

    Por exemplo, para criar um manipulador para Load evento, crie um método chamado Page_Load.

    Observação:

    Manipuladores de eventos de página não necessitam de parâmetros como outros manipuladores de evento de controles necessitam.

    Páginas ASP.NET automaticamente vinculam eventos de página a métodos que possuem o nome Page_ evento.Esta ligação automático é configurada pelo AutoEventWireup o atributo na @ página diretiva, o que é definida como true Por padrão. Se você conjunto AutoEventWireup para false, a página não procura automaticamente por métodos que usam o Page_evento convenção de nomeclatura.

    O exemplo de código a seguir exibe um manipulador para o evento Load da página.

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Page.IsPostBack Then
            Response.Write("<br>Page has been posted back.")
        End If
    End Sub
    
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            Response.Write("<br>Page has been posted back.");
        }
    }
    

Para adicionar um manipulador declarativamente para um controle

  1. No editor de códigos, crie um método de tratamento de evento com a assinatura apropriada.

    O método pode não ser nomeado se você desejar.

  2. Na marcação do controle, utilize os atributos que são nomeados On<nome do evento> para fisgar um manipulador de eventos.Use o nome do método do manipulador de eventos como valor.

    O exemplo de código a seguir exibe a marcação para um controle TextBox para o qual o evento TextChanged é vinculado ao método manipulador de evento nomeado NameChange.

    Observação de segurança:

    Este exemplo contém uma caixa de texto que aceita entradas de usuário, o que é uma ameaça potencial à 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.

    Protected Sub NameChange(ByVal sender As Object, ByVal e As System.EventArgs) Handles textbox1.TextChanged
        'Sub for the OnTextChanged event
    End Sub
    
    <asp:TextBox ID="textbox1" Runat="server" 
    Text="" 
    OnTextChanged="NameChange" />
    
  3. Adicione o método de evento ao seu código.Por exemplo, o exemplo de código seguinte exibe o código para o método manipulador de evento nomeado NameChange.

    protected void NameChange(object sender, EventArgs e)
    {
        //Method for the OnTextChanged event.
    }
    

Para adicionar um manipulador de evento implicitamente no Visual Basic

  1. No editor de códigos, crie um método de tratamento de evento com a assinatura apropriada.

    O método pode não ser nomeado se você desejar.

  2. Use a palavra-chave Handles, especificando o controle e eventos para os quais o método deve vincular.

    O exemplo de código seguinte exibe um manipulador de evento para o evento Click do botão nomeado SampleButton.O método no exemplo é nomeado Clicked.

    Protected Sub SampleButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
            Handles SampleButton.Click
        ' Code goes here.
    End Sub
    
    Observação:

    Se você utilizar a tecla Handles, não inclua um atributo de evento no controle da marcação.Se você fizer isso, o manipulador será chamado duas vezes.

  3. Se o método manipula múltiplos eventos, adicione os nomes dos eventos adicionais à cláusula Handles, separados por vírgula.

    O exemplo de código seguinte exibe um método que manipula o evento Click para muitos botões.No manipulador, o código testa o argumento sender para determinar qual botão foi clicado.

    Protected Sub AnyClicked(ByVal sender As Object, ByVal e As System.EventArgs) _
            Handles Button1.Click, Button2.Click, Button3.Click
        Dim b As Button = CType(sender, Button)
        Response.Write("You clicked the button labeled " & b.ID)
    End Sub
    

Consulte também

Tarefas

Como: BIND dinamicamente manipuladores evento em time de execução em páginas da Web do ASP.NET

Conceitos

Visão geral sobre controles do servidor da Web do ASP.NET

Outros recursos

Tratamento e disparada de eventos

Tratamento de Evento de servidor em páginas da Web ASP.NET