Procedura: utilizzare eventi in un'applicazione Web Form

Aggiornamento: novembre 2007

Uno scenario comune nelle applicazioni Web Form consiste nell'inserimento di alcuni controlli in una pagina Web e nella successiva esecuzione di un'operazione specifica in base al controllo selezionato dall'utente. Il controllo System.Web.UI.WebControls.Button, ad esempio, genera un evento quando l'utente fa clic su di esso nella pagina Web. Tramite la gestione dell'evento, l'applicazione esegue la logica appropriata all'azione dell'utente.

Per informazioni sul modello di programmazione di Web Form, vedere Programmazione di Web Form.

Per gestire un evento Click su un pulsante in una pagina Web

  1. Creare una pagina Web Form (pagina ASP.NET) contenente un controllo Button.

    <asp:Button id = "Button" Text = "Click Me" runat = server/>
    
  2. Definire un gestore eventi corrispondente alla firma del delegato dell'evento Click. L'evento Click utilizza la classe EventHandler per il tipo delegato e la classe EventArgs per i dati dell'evento.

    void Button_Click(object sender, EventArgs e)
    {...}
    
    Sub Button_Click(sender As Object, e As EventArgs)
    ...
    End Sub
    
  3. Impostare l'attributo OnClick nell'elemento Button sul metodo del gestore eventi.

    <asp:Button
            id = "Button" OnClick = "Button_Click" Text = "Click Me" 
            runat = server/>
    
    Nota:

    Uno sviluppatore di applicazioni Web Form può collegare l'evento in modo dichiarativo, come illustrato, senza utilizzare direttamente il delegato. Il framework della pagina ASP.NET genera codice che crea un'istanza di EventHandler che fa riferimento a Button_Click e aggiunge tale istanza del delegato all'evento Click dell'istanza di Button .

Esempio

La pagina Web Form che segue gestisce l'evento Click di Button per cambiare il colore di sfondo di TextBox. Nell'esempio che segue sono stati evidenziati in grassetto il codice del gestore eventi e il codice che collega il gestore eventi all'evento Click di Button.

Nota sulla sicurezza:

In questo esempio è inclusa una casella di testo che accetta l'input dell'utente e rappresenta quindi una potenziale minaccia alla sicurezza. Per impostazione predefinita, le pagine Web ASP.NET verificano che l'input dell'utente non includa script o elementi HTML. Per ulteriori informazioni, vedere Cenni preliminari sugli attacchi tramite script.

 [C#]
<html>
   <script language="C#" runat=server> 
      private void Button_Click(object sender, EventArgs e){         Box.BackColor = System.Drawing.Color.LightGreen;      }
   </script>
   <body> 
      <form method="POST" action="Events.aspx" runat=server>   
          Click the button, and notice the color of the text box.<br><br>
         <asp:TextBox 
         id = "Box" Text = "Hello" BackColor = "Cyan" runat=server/>             
         <br><br>       
        <asp:Button
        id = "Button" OnClick = "Button_Click" Text = "Click Me" 
        runat = server/>         
      </form>
   </body>
</html>
<html>
   <script language="VB" runat=server> 
      Private Sub Button_Click(sender As Object, e As EventArgs)         Box.BackColor = System.Drawing.Color.LightGreen
      End Sub
   </script>
   <body> 
      <form method="POST" action="Events.aspx" runat=server>   
          Click the button, and notice the color of the text box.<br><br>
         <asp:TextBox 
         id = "Box" Text = "Hello" BackColor = "Cyan" runat=server/>             
         <br><br>       
        <asp:Button
        id = "Button" OnClick = "Button_Click" Text = "Click Me" 
        runat = server/>         
      </form>
   </body>
</html>

Compilazione del codice

Per verificare il funzionamento della gestione eventi in Web Form, salvare la pagina di esempio in un file con estensione aspx, ovvero l'estensione delle pagine ASP.NET, e distribuire il file in un punto qualsiasi della directory virtuale di primo livello di IIS.

Vedere anche

Concetti

Eventi e delegati

Utilizzo degli eventi

Generazione di un evento

Altre risorse

Gestione e generazione di eventi