#481 - Aggiungere uno user control con LoadControl

Sappiamo sfruttare gli user controls in una pagina ASP.NET, semplicemente inserendoli come normali web controls, attraverso una sintassi del tipo <aspitalia:corsi runat="server" />.
Alla stregua dei web controls, gli user controls possono essere aggiunti in maniera programmatica alla pagina (o ad un placeholder), con un piccolo accorgimento.

Per chi non lo sapesse, gli user controls sono pezzi di codice HTML e codice, che si possono inserire in una pagina ASP.NET (o in un altro user control) come se si trattasse di un oggetto singolo, anche se in realtà ha molte più funzionalità all'interno, proprio come succede per i web controls più complessi come il datagrid.
E' quindi possibile personalizzare uno user control impostando delle proprietà in fase di dichiarazione dello stesso.

Tornando al nostro esempio, per prima cosa è necessario aggiungere un attributo ClassName all'interno del nostro user control, come segue:

<%@ Control Language="VB" ClassName="corsi" %>

Da questo momento potremo fare riferimento al control sfruttando come nome della classe "corsi".
Per il resto, nella pagina andremo a registrare come al solito il control attraverso la direttiva @Register, per poi caricarlo in una variabile sfruttando LoadControl con il percorso del file .ascx. E' importante avere il nome della classe per poter lavorare sulle proprietà dello user control.
Infine ci basterà aggiungerlo ai controls della pagina (o di un placeholder) ed è tutto:

<%@ Register TagPrefix="aspitalia" TagName="corsi" Src="corsi.ascx" %>
<SCRIPT language="C#" runat="server">
  void Page_Load(object sender, System.EventArgs e)
    {
    Control c1 = Page.LoadControl("corsi.ascx");
    ((corsi)c1).Zona = "treviso";
    ((corsi)c1).EarlyPrice = true;
    Page.Controls.Add(c1);
  }
</SCRIPT>


Approfondimenti

Commenti

Esprimi il tuo giudizio su questo script:

Per procedere devi essere autenticato.

EarthQuake scrive:
#481 - Aggiungere uno user control con LoadControl

Salve ho provato il codice in oggetto e tutto sembra funzionare quando lo scrivo nel page_load.Io ho un problema diverso che riassumo brevemente.Ho ...
lunedì 30 ottobre 2006 | 1 risposta
bubbalù scrive:
#481 - Aggiungere uno user control con LoadControl

Scusate se è una domanda stupida, ma non riesco a far funzionare l'esempio in una pagina creata "al volo" con il codice copiato pari pari ...In ...
martedì 28 febbraio 2006 | 2 risposte

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.




IN EVIDENZA
MISC