I controlli lato server di ASP.NET 2.0

di: Giuseppe Marchi     05 Settembre 2007

Alla nascita di ASP.NET (versione 1.0), l'introduzione della logica ad oggetti nella programmazione di siti e applicazioni web è avvenuta proprio grazie all'invenzione dei controlli web lato server, dei particolari tipi di TAG, da mescolare a quelli propri dell'HTML, con proprietà ed eventi che possono essere gestiti lato server.

Questi controlli, che in inglese sono chiamati Server Controls, stanno alla base della logica di separazione tra lo strato di presentazione e quello di computazione lato server proprio di ASP.NET.

Proprio il loro nome, infatti, deriva dal fatto che ognuno di questi elementi, una volta inserito in una pagina .aspx, viene trattato come una vera e propria istanza di un oggetto dal motore di ASP.NET e risulta così in grado di fornire un insieme di proprietà, metodi ed eventi che ne modificano il comportamento ad ogni post della pagina al server.

In questa maniera, è stata abbandonata del tutto la tecnica denominata "spaghetti-code" che vedeva pezzi di codice inseriti tra i tag HTML della pagina (tecnica propria di classic ASP e delle versioni meno recenti di PHP), in favore del paradigma ad oggetti, sicuramente meglio gestibile e stilisticamente più appropriato.

Ora quindi abbiamo a che fare con proprietà, utili a leggere o impostare valori per modificare l'aspetto e il comportamento dell'oggetto, e con eventi, in modo tale da eseguire operazioni personalizzate in seguito a determinati comportamenti sia del controllo che dell'utente.

Questi controlli, sin dalla prima versione del .NET Framework, sono stati divisi in due grandi filoni:

  • Gli HTML Server Controls
  • I Web Server Controls

Nonostante la netta divisione però, tutti gli elementi di entrambe le famiglie derivano dalla medesima classe, la classe Control del namespace System.Web.UI. Questo per fare in modo che comunque tutti fossero dotati di proprietà di base comuni (come la proprietà id) e che tutti seguissero lo stesso ciclo di vita. Esaminiamo in dettaglio le caratteristiche principali di entrambe le categorie.

HTML Server Controls

Questa famiglia contiene al suo interno tutti quei controlli che rappresentano i tag definiti dall'HTML, che in questo modo possono essere trattati anche "lato server".

In una pagina web ASP.NET tutti i tag HTML vengono trattati dal parser come delle semplici stringhe. Per far in modo che questi diventino degli HTML Server Controls e che possano quindi essere "visti" lato server, bisogna aggiungere e valorizzare l'attributo ID, che serve ad identificare l'elemento nella parte di "code-behind" della pagina ed aggiungere l'attributo runat="server". Il tag eredita tutte le proprietà base dei controlli della famiglia degli HTML Server Controls.

Quindi, per fare un esempio, il classico link:

<a href="http://www.peppedotnet.it">peppedotnet.it</a>

per entrare a far parte della famiglia degli HTML Server Controls, diventa:

<a href="http://www.peppedotnet.it" id="lnkPeppeDotNet" runat="server">peppedotnet.it</a>

In questo modo, nella parte di code-behind della pagina, sarà possibile utilizzare l'oggetto denominato "lnkPeppeDotNet" come istanza della classe HtmlAnchor:

  • lnkPeppeDotNet.Title = "PeppeDotNet.it - Blog";
  • lnkPeppeDotNet.HRef = "http://www.peppedotnet.it/Blog";

Tutti gli altri controlli HTML assieme al controllo HtmlAnchor, sono disponibili sotto il namespace System.Web.UI.HtmlControls.

L'unico vincolo che abbiamo riguardo l'utilizzo degli HTML Server Controls è che questi devono essere inseriti all'interno del tag <form runat="server">, elemento che deve essere presente almeno e solo una volta all'interno della pagina.

Guide ASP.Net

Guida Windows Azure Code Snippets

Le migliori pratiche per far girare le applicazioni "in the cloud",...

Guida ASP.NET MVC Best Practices

Un workflow dettagliato e ricco di suggerimenti pratici per...

Guida ASP.NET Starter Kit

Un modo semplice per imparare ad utilizzare le tecnologie Microsoft...

Altre guide

Newsletter @Microsoft Dev

Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Amministratore di Reti Windows Server 2008

20 Febbraio 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto