Aggiungere uno user control con LoadControl

di Daniele Bochicchio, in ASP.NET, Web Server Controls, C#,

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="C#" 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)
{
  Corsi c1 = (Corsi)Page.LoadControl("corsi.ascx");
  c1.Zona = "Milano";
  c1.EarlyBird = true;
  Page.Controls.Add(c1);
}
</SCRIPT>

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

Nessuna risorsa collegata

I più letti di oggi