Gli Html Controls di ASP.NET

di Daniele Bochicchio, in ASP.NET,

ASP.NET è event driven, come molti di voi già sapranno, ovvero supporta gli eventi generati dagli oggetti che compongono una normale pagina ASP.NET.
In parole povere, questo vuol dire che è possibile programmare (se lo si vuole) un singolo oggetto di una pagina come se fosse un oggetto proprio del framework.
Questo è possibile attraverso l'implementazione delle web form e dei controlli ad essa associati: web Server Controls e Html Controls .

In particolare in questo articolo ci soffermeremo sui secondi, un particolare tipo di controlli che ci permette di poter accedere ad alcune proprietà dei tag HTML semplicemente aggiungendo, in fase di dichiarazione di questi tag nelle nostre pagine, l'attributo runat="server" .

Perchè Html Controls?

Si chiamano così perchè tra i controlli disponibili direttamente con il runtime ASP.NET, sono quelli che ricalcano in realtà i normali tag HTML più diffusi.
Si trovano nel namespace System.Web.UI.HtmlControls e sono riassunti nella schermata in basso.

I controlli disponibili nel namespace

Sono simili, in quanto a funzionalità, ai più noti Web Controls, ma hanno un vantaggio in più per chi è abituato all'HTML: la dichiarazione e le proprietà sono identiche a quelle che usereste in una normale e statica pagina HTML.
In sintesi, permettono di accedere agli oggetti disponibili su una pagina senza dover imparare una nuova nomeclantura...

Html Controls vs Web Controls

Gli Html Controls esistono per compatibilità verso il passato, oltre che per la loro indubbia semplicità di utilizzo.
Ecco ad esempio come dichiarare un HTMLAnchor (un link) e manipolarne le proprietà nell'evento Page_Load:

<a id="controllo" runat="server">prova link<a>
<SCRIPT RUNAT="SERVER">
Sub Page_Load()
  controllo.href = "http://www.aspitalia.com"
  controllo.title = "Vai su ASPItalia.com"
End Sub
</SCRIPT>

E' possibile cambiare da codice tutte le proprietà previste dall'HTML per il tag <a>, dunque il target, ad esempio.

Il risultato sarà qualcosa come questo: prova link

L'utilità di questo sistema è chiara se si pensa a quanto diventi facile modificare un link in base, ad esempio, ai privilegi di un utente: link per modificare un articolo, o semplice link per visualizzarne il contenuto...

Dunque, gli Html Controls hanno il gran vantaggio di non richiedere un cambio radicale del codice: se si ha qualcosa di già funzionante, diventa più semplice convertirlo.
In seconda istanza, non ci si trova spaesati: la nomenclatura degli attributi e dei tag non cambia.

Ci sono però anche alcuni vantaggi a favore dei Web Controls.
Prima di tutto, hanno una nomenclatura più uniforme: questo vuol dire che controlli di natura differente hanno proprietà dello stesso nome, cosa non vera per gli Html Controls, che riflettono, nè più e nè meno, le caratteristiche dell'implementazione del tag a cui corrispondono nell'HTML.
In secondo luogo, si riconoscono più facilmente in un codice complesso, dato che sono preceduti dal prefisso "<ASP:".

In sintesi, usare gli uni o gli altri è più questione di comodità (e di abitudine).

2 pagine in totale: 1 2
Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti