Sei in: Per i Webmaster - Corso di ASP.NET - I server Controls e gli eventi
ASP.NET è stato pensato per creare applicazioni web ed una delle caratteristiche importanti di queste applicazioni, che ritroviamo nelle classiche applicazioni per windows, è il fatto di essere guidate dagli eventi: se io eseguo una determinata operazione come cliccare su un bottone o selezionare un elemento in un menu a tendina, questo è un evento che mi causa l'esecuzione di una parte del programma. Per aumentare l'interattività delle pagine web in questa direzione sono state pensate tecnologie di scripting lato client come Javascript e Dhtml o lato server come asp, php, jsp. Queste tecnologie offrono in alcuni casi delle soluzioni molto valide ma presentano comunque delle limitazioni, era necessario pensare a qualcosa di innovativo. Vediamo quindi come ASP.NET introduce delle innovazioni estremamente importanti partendo da un esempio in cui creeremo una pagina web contenente 3 server controls che interagiscono tra loro.
void Button1_Click(Object sender, EventArgs e)
{
Label1.Text = TxtNome.Text + "... Bel nome!";
}
</script>
<html>
<body>
<form runat="server">
Dimmi chi sei:
<asp:textbox runat="server" id="TxtNome" /><p>
<asp:button runat="server" id="Button1" Text="Dimmelo!" OnClick="Button1_Click"/>
<p>
<asp:label runat="server" id="Label1" />
</form>
</body>
</html>
Ricordiamoci di salvare il file con l'estensione .aspx
e mettiamolo in una cartella del nostro web server.
In questo listato abbiamo messo tre server controls: una
textbox,
un bottone ed una etichetta (label). Per tutti e tre
abbiamo specificato l'attributo runat="server"
che è necessario per poter fare interazioni lato server e poi abbiamo
assegnato un id ad ognuno che ci serve per
poter richiamare l'oggetto in fase di scrittura del codice vero e
proprio. Ogni control che mettiamo in una pagina è di fatto un oggetto
con cui posso interagire. Il bottone Button1
ha anche il metodo onClick che invoca la
"funzione" (più propriamente detta event handler)
Button1_click che abbiamo descritto nella sezione
<script>.
Questa funzione ha una unica riga in cui si specifica quale deve essere
il testo dell'etichetta Label1. Un elenco
dei metodi disponibili per ogni control lo possiamo trovare nella
documentazione del framework.
Nel primo esempio l'evento era invocato dal clic su un bottone, esistono però altri eventi legati, ad esempio, al caricamento della pagina:
{
// Esegue questo codice quando la pagina viene caricata
// Solo se la funzione si chiama Page_Load
}
In questo secondo esempio il codice contenuto tra le parentesi viene eseguito ogni volta che la pagina viene visitata.
