di: Giuseppe Marchi 03 Ottobre 2007
I controlli compositi ci permettono di riutilizzare set di controlli definendone uno solo. Possiamo definire i "controlli figli" per la costruzione di interfacce e funzionalità avanzate, e richiamare tutto il "blocco" da un unico oggetto in qualunque pagina delle nostre applicazioni Web.
Questo tipo di controlli fa parte della famiglia dei "Web Server Controls", che abbiamo visto in un articolo precedente, e sono largamente utilizzati all'interno dell'intera architettura di ASP.NET, ma tornano anche molto utili allo sviluppatore nel caso in cui si voglia incapsulare diversi tipi di logica in un unico contenitore.
Possono essere anche visti come delle vere e proprie collezioni di controlli, i quali però non combinano funzionalità e comportamenti tra di loro, ma lavorano assieme per creare nuove funzionalità più complesse.
Le stesse pagine ASP.NET, come pure gli User Control (.ascx), possono essere considerati controlli compositi, in quanto contengono una quantità di sotto-controlli per definire l'interfaccia del sito. In questi casi la "composizione" avviene attraverso il markup e non implementando direttamente la classe del controllo via
codice.È possibile creare controlli compositi sin dalle prime versioni del .NET Framework; prima dell'arrivo della 2.0 però, la procedura era più complessa in quanto bisognava ereditare dalla classe base WebControl e implementare l'interfaccia INamingContainer. Tale interfaccia, tuttora in uso nel framework, garantisce l'univocità degli attributi ID di tutti i controlli figlio, perché questi possano essere possano essere richiamati direttamente dall'ID oppure con il metodo FindControl(), ereditato dalla classe Control (che, se non viene implementata l'interfaccia INamingContainer, ritorna sempre null).
È sempre stato importantissimo implementare questa interfaccia, anche perché si evitano tranquillamente i conflitti di nomi una volta che i vari controlli vengono inseriti all'interno di pagine .aspx complesse. Grazie a questo meccanismo, ogni controllo, una volta "renderizzato" all'interno di una pagina ASP.NET, risulta avere un ID univoco, diverso da quello iniziale, e composto da tutti gli ID dei controlli contenitori, separati dal simbolo '$' (dollaro), secondo la gerarchia stabilita in fase di "composizione".
Esempio di ID
IDControlloPadre$IDControlloFiglio
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 |