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
Creare una pagina Web Form (pagina ASP.NET) contenente un controllo Button.
<asp:Button id = "Button" Text = "Click Me" runat = server/>
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
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.