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(); }