Un Custom Control rispetto ad uno User Control ha il vantaggio di poter essere riutilizzabile più facilmente in progetti differenti, oltre a poter essere distribuito come un semplice assembly da caricare in \bin\ per essere utilizzato.
Concettualmente un Custom Control non si discosta molto da uno User Control, ma rispetto a quest'ultimo, essendo una classe composta da codice, permette di sfruttare meglio ASP.NET e favorisce, al tempo stesso, un migliore riutilizzo del codice.
In questo esempio, il primo di una serie dedicato ai Custom Control, vedremo come creare un semplice WebControl che mostra la data e l'ora attuale, con una proprietà per impostare il testo.
Dobbiamo quindi creare una nuova classe con questo testo alll'interno:
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
namespace ASPItalia.WebControls
{
// il nome del control coincide con quello della classe
[ToolboxData("<{0}:CurrentTime runat=server></{0}:CurrentTime>")]
public class CurrentTime : System.Web.UI.WebControls.WebControl
{
private string text = "Ora corrente";
public string Text
{
set {
text = value;
}
}
// funzione per scrivere l'output del control
protected override void Render(HtmlTextWriter output)
{
string ftext = String.Format("{2}: {0} del {1}",
DateTime.Now.ToShortTimeString(),
DateTime.Now.ToShortDateString(),
text);
output.Write(ftext);
}
}
}La funzione Render accetta un HtmlTextWriter che è poi una classe particolare che HttpRuntime carica per ogni richiesta e che permette al control di generare l'Output.
E' in questa funzione che andremo a generare il codice HTML che il nostro Custom Control invierà al browser.
Una volta compilata la classe, per essere utilizzata va registata in ogni pagina, in questo modo:
<%@ Register TagPrefix="aspitalia" Namespace="ASPItalia.WebControls" Assembly="aspitalia.webcontrols"%>E va quindi utilizzata così:
<aspitalia:CurrentTime runat="server"/>Avremo modo di approfondire meglio l'argomento nei prossimi script.
E' presente un allegato con il codice sorgente e tutto quanto serve per compilare e testare questo esempio.
- Modificare i CSS Friendly Control Adapters
- #911 - Ricercare classi all'interno di un assembly utilizzando la Reflection
- Piccoli grandi VWD Express 2008 crescono
- Esportazione di pagine ed allegati in formato MIME
- #921 - Specificare un tipo custom come valore di un parametro di selezione dell'ObjectDataSource
- Trovare il Page not Found...
- Cosa fare se la vostra applicazione ASP o ASP.NET è vittima di SQL injection
- Realizzare un controllo custom in ASP.NET AJAX - Prima parte
- ASP.NET 3.5: global.asax vs managed modules
- #945 - Verificare l'accesso ai file mediante l'UrlAuthorizationModule di ASP.NET
- WPF: dal DataBinding ai Template - Seconda parte
- #903 - Applicare le policy sui ruoli a SiteMap
Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.







Stampa
Snippet
Download


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!