Partilhar via


Como: Responder a botão controle de servidor Web Events

Quando um controle de servidor Web Button, LinkButton ou ImageButton é clicado, a página atual é enviada ao servidor, onde ela é processada.

Para responder a um evento de botão

  • Crie um manipulador de eventos com um dos eventos a seguir:

    • O evento Page_Load da página.Como o botão sempre envia a página ao servidor, este método sempre será executado.Use o evento Page_Load quando não importa qual botão foi clicado, apenas que o formulário foi enviado.

    • O evento Click do botão.Escreva um manipulador de eventos para este evento quando for importante saber qual botão foi clicado.

      Observação:

      Se você estiver trabalhando com um controle ImageButton e deseja saber as coordenadas x e y de clique do usuário, você deve criar um manipulador de eventos para este evento.Para obter detalhes, consulte:Como: Determinar as coordenadas em um ImageButton controle de servidor Web.

    O exemplo a seguir mostra como você pode responder quando um usuário clica em um controle de servidor Web Button.O método exibe uma mensagem em um controle de servidor Web Label.

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Label1.Text="You clicked a button"
    End Sub
    
    public void Button1_Click (object sender, System.EventArgs e)
    {
       Label1.Text="You clicked a button.";
    }
    

    O exemplo a seguir mostra como você pode responder ao clique de um botão de um manipulador de eventos Page_Load.O método testa a propriedade IsPostBack da página para determinar se esta é a primeira vez a página foi processada ou se ela foi enviada por um clique em um botão .

    Private Sub Page_Load(ByVal Sender As System.Object, ByVal e _
        As System.EventArgs) Handles MyBase.Load
        If Not IsPostback Then
            ' This is called the first time the page has loaded.
            ' The user will not have been able to click any buttons yet.
        Else
            ' This is called if the form has been posted back, possibly
            ' by a button click.
            Me.Label1.Text = "You clicked a button."
        End If
    End Sub
    
    private void Page_Load(object sender, System.EventArgs e)
    {
       if (!IsPostBack)
       {
          // Evals true first time browser hits the page.
       }
       else
       {
          // This is called if the form has been posted back, possibly
          // by a button click.
          this.Label1.Text = "You clicked a button.";
       }
    }
    

    O exemplo a seguir mostra uma calculadora simples de números inteiros com quatro funções.Vinculando todos os botões (Adicionar, Subtrair, Multiplicar e Dividir) ao mesmo método, você pode manipular todos os cálculos em um lugar e evitar código repetitivo.A vinculação dos botões ao método Calculate é realizada usando o método AddHandler no Visual Basic e usando o operador += Em C#.Para garantir que os valores de entrada sejam inteiros, você pode adicionar código de tratamento de erros ao método Calculate ou usar os controles de validação que estão disponíveis para Formulários da Web.

    ' Set the CommandName property of the buttons to "Add", 
    ' "Subtract", "Multiply", and "Divide".
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       AddHandler Me.btnAdd.Click, AddressOf Calculate
       AddHandler Me.btnSubtract.Click, AddressOf Calculate
       AddHandler Me.btnMultiply.Click, AddressOf Calculate
       AddHandler Me.btnDivide.Click, AddressOf Calculate
    End Sub
    
    Public Sub Calculate(ByVal sender As Object, ByVal e As System.EventArgs)
       Dim op1 As Integer = CType(Me.TextBox1.Text, Integer)
       Dim op2 As Integer = CType(Me.TextBox2.Text, Integer)
       Dim result As Integer
       Select Case CType(sender, Button).CommandName
          Case "Add"
             result = op1 + op2
          Case "Subtract"
             result = op1 - op2
          Case "Multiply"
             result = op1 * op2
          Case "Divide"
             ' Divide two numbers and return an integer result.
             If op2 > 0 Then
                   result = op1 \ op2
             Else
                   result = 0
             End If
          Case Else
             ' Error handling code here.
       End Select
       Label1.Text = result.ToString()     
    End Sub
    
    // Set the CommandName property of the buttons to "Add", _
    // "Subtract", "Multiply", and "Divide".
    protected void Page_Load(object sender, EventArgs e)
    {
       btnAdd.Click += new System.EventHandler(this.Calculate);
       btnSubtract.Click += new System.EventHandler(this.Calculate);
       btnMultiply.Click += new System.EventHandler(this.Calculate);
       btnDivide.Click += new System.EventHandler(this.Calculate);
    }
    
    protected void Calculate (object sender, System.EventArgs e)
    {
       int op1 = Convert.ToInt16(TextBox1.Text);
       int op2 = Convert.ToInt16(TextBox2.Text);
       int result = 0;
       switch(((Button)sender).CommandName)
       {
          case "Add" :
             result = op1 + op2;
             break;
          case "Subtract" :
             result = op1 - op2;
             break;
          case "Multiply" :
             result = op1 * op2;
             break;
          case "Divide" :
             // Integer division.
             if (op2 > 0) 
                   result = op1 / op2;
             else
                   result = 0;
             break;
          default:
             // Error handling code here.
             break;
       }
       Label1.Text = result.ToString();
    }
    

Consulte também

Referência

Visão Geral dos Controles do Servidor Web de Botão