Come creare uno User Control
Data di pubblicazione: 28/02/2005
Voto della community: 3,79
(Votanti: 8)
Gli UserControls di ASP.NET rappresentano un insieme di controlli Server o elementi statici HTML; grazie al loro utilizzo è possibile semplificare ed allo stesso tempo rendere più modulare lo sviluppo di Web Applications.
Gli UserControls (da questo momento in poi U.C.) di ASP.NET rappresentano un insieme di controlli Server o elementi statici HTML; il loro utilizzo consente di semplificare ed allo stesso tempo rendere più modulare lo sviluppo di Web Applications. La differenza tra gli U.C. ed i controlli tradizionali è notevole: i primi possono essere modificati, i secondi sono dei Controlli Server tradizionali compilati in DLL e non modificabili. Creiamo il nostro primo User Control
Per creare uno U.C. utilizzando Visual Studio:
Fig.1. Selezionare "Add New Item"
Fig.2. Scegliere "Web User Control" Verrà aggiunto un file .ascx al nostro progetto; l'estensione .ascx è utilizzata dal Framework .NET per identificare le pagine che devono essere interpretate come controlli generati dell'utente e non come pagine ASP.NET tradizionali. Al codice HTML file .ascx verrà aggiunta la seguente stringa: <%@control Language="c#" description="testo" ... %>
E' importante sottolineare che il codice HTML del file .ascx non presenta il tag <BODY> in quanto verrà utilizzato il Body del WebForm nel quale lo U.C. verrà posizionato; verranno inoltre inclusi anche tutti i fogli di stile (o altri elementi) inclusi nel WebForm principale.
Inseriamo lo User Control all'interno di una pagina
Ogni U.C., per essere utilizzato, deve essere incluso all'interno di una pagina .aspx:
- trascinare il file .ascx presente nel "Solution Explorer" all'interno della pagina .aspx desiderata L'aspetto effettivo della pagina non verrà modificato con l'inserimento del controllo, ma verrà visualizzato semplicemente un oggetto grafico indicate il nome dello UserControl; questo vuol dire che sarà necessario eseguire la pagina per visualizzare correttamente il layout creato.
<%@ Register TagPrefix="MioControllo" TagName="Menu" Src="Menu.ascx" %>
- l'attributo TagPrefix indica il prefisso per identificare ed utilizzare lo U.C. all'interno della pagina; definisce quindi il namespace nel quale il controllo dovrà "vivere". Sarà quindi possibile avere controlli con lo stesso nome ma con un prefisso differente che potranno coesistere nella medesima pagina.
- l'attributo TagName specifica il nome del controllo e dovrà essere unico per tutto il namespace. - l'attributo Src indica la posizione del file .ascx; è possibile utilizzare path virtuali come ad esempio "mioUserControl.ascx" oppure "/path/mioUserControl.ascx" ma non è possibile utilizzare path fisici del tipo "C:\path\mioUserControl.ascx". In seguito alla registrazione dello controllo sarà possibile utilizzare infinite istanze dello stesso U.C. (utilizzando gli appositi tags) e definire differenti impostazioni per le proprietà di ogni singola istanza, come se si trattasse di un tradizionale Server Control. Alcuni esempi pratici
Primo esempio:
Pagina controllo.ascx
<script language="VB" runat="server">
Pagina pagina.aspx
<%@ Page Language="VB" %>
Secondo esempio: In questo esempio vedremo come gestire un sistema di autenticazione utilizzando uno U.C. Pagina login.ascx
<script language="C#" runat="server">
Pagina login.aspx
<%@ Register TagPrefix="UCLogin" TagName="Login" Src="login.ascx" %> Approfondimenti
Per accedere, da una pagina .aspx, ai Web Controls presenti in uno U.C e dichiarati come protected non è possibile utilizzare:
myWebControl.Text = "testo"
in questi casi, per interagire con i Web Controls, è necessario utilizzare le apposite property create nello U.C. per dare accesso a specifici oggetti protetti:
<script language="C#" runat="server">
questa soluzione consente inoltre di effettuare una verifica sui dati che vengono comunicati ai Web Control presenti nello U.C.:
<script language="C#" runat="server"> Conclusioni
Gli User Control si rivelano particolarmente utili nei casi in cui la struttura di determinate Web Applications è particolarmente complessa e risulta necessario organizzarla in moduli di più facile gestione.
Si ringrazia dotnetit.com per la gentile concessione dell'articolo.
|
||||||||||||||||||||||||