di: Giuseppe Marchi 05 Settembre 2007
Come la stragrande maggioranza delle funzionalità del sistema su cui si basa ASP.NET, è possibile estendere il set di controlli web pre-esistenti sviluppando dei controlli personalizzati in grado di soddisfare quelle che risultano essere le esigenze dell'applicazione web che stiamo costruendo.
È possibile costruire sia degli HTML Server Controls, sia dei Web Server Controls, il punto però sta nel fatto che i primi sono stati creati solamente per mappare i tag presenti nelle specifiche dell'HTML e non hanno le possibilità che invece offrono i Web Server Controls.
Nell'esempio che affronteremo, esamineremo i passi necessari per implementare un semplice controllo Web personalizzato per creare dei link che aprano delle finestre pop-up. L'esempio è molto semplice, ma permette di imparare bene alcuni concetti di base riguardanti questo tipo di personalizzazioni.
La prima cosa da fare, è creare una nuova classe con uno dei lunguaggi compatibili con il .NET Framework e far si che questa erediti dalla classe WebControl. Questa è la classe base di tutti i controlli Web lato server ed è la classe che fornisce le implementazioni della maggior parte dei metodi di base utili al corretto funzionamento del nostro controllo.
Ereditando da WebControl infatti, non dobbiamo preoccuparci di gestire il postback o di implementare la lettura e il salvataggio dei valori dal ViewState, poiché troviamo già tutto pronto; se invece, vogliamo personalizzare la gestione di un particolare comportamento oppure una delle fasi di vita del nostro controllo, non dobbiamo far altro che sovrascrive le proprietà o i metodi che vi vengono messi a disposizione.
Definizione di un controllo personalizzato
namespace Peppe.Web.UI.WebControls
{
public class PopUpLink : WebControl
{
//...
}
}
Le proprietà e i metodi che sovrascriveremo, saranno legati a due compiti ben diversi:
<a>;Per quanto riguarda il primo obbligo, dobbiamo effettuare l'override della proprietà TagKey (che ha solamente l'accessore get) in modo tale che ritorni, ogni qualvolta venga richiamata, il valore "A" dell'enumerazione HtmlTextWriterTag, che rappresenta appunto l'elemento HTML <a>.
protected override HtmlTextWriterTag TagKey
{
get { return HtmlTextWriterTag.A; }
}
In questa maniera, il nostro controllo web, una volta renderizzato dal motore di ASP.NET, produrrà un elemento <a>.
Guida Windows Azure Code SnippetsLe migliori pratiche per far girare le applicazioni "in the cloud",... |
Guida ASP.NET MVC Best PracticesUn workflow dettagliato e ricco di suggerimenti pratici per... |
Guida ASP.NET Starter KitUn modo semplice per imparare ad utilizzare le tecnologie Microsoft... |
Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.
Iscriviti alla newsletter
|
|
Amministratore di Reti Windows Server 200820 Febbraio 2012 a Milano |
|
Nessun corso previsto |