Se avete sviluppato WebControl (e chi non lo ha fatto, sono troppo comodi ), vi sarete trovati almeno una volta con un problema, fornire uno stile di default.
sappiamo tutti che i css possono essere inseriti inline, nel head o in un file separato.
lo sviluppatore del WebControl si trova davanti una serie di difficoltà, di default il tag head non ha l'attriburo runat="server" quindi è impossibile recuperarlo, lato server per inserire lo style o il riferimento al file esterno.
il problema potrebbe essere aggirato obbligando l'utente finale ad'aggiugere l'attributo runat="server" , ma la versione attuale del VS ha l'abituidene di toglierlo.
accettando che l'utente finale inserisca l'attributo, rimane il problema del file esterno, sarebbe cosa buona, distribuirlo come risorsa incorporata , evitanto così di spargere file, ma per recuperare la risorsa sarebbe necessario un httphandler.
unica via facilemente percorribile (per adesso) è iserire lo style inline.
La classe style che mette a disposizione il framework, non è la più completa, ma estenderla è un gioco da ragazzi:
public class MyStyle : Style
{...}
il WebControl crea un istanza delle classe Style nel metodo CreateControlStyle(), eseguiremo l'override per far si che il metodo restituisca un istanza di MyStyle
protected override Style CreateControlStyle()
{
return new MyStyle(this.ViewState);
}
come argomento, al costruttore viene passato un riferimento al VievState, in modo che la classe style possa salvarci le propie informazioni.
a questo punto possiamo dotare la classe di tutte le propietà che riteniamo utili, alla fine la cosa più importante è eseguire l'override del metodo AddAttributesToRender al fine di scricere correttamente nel flusso di output il nostro style.
fine prima puntata :)
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- Modificare il controllo TreeView, il 2 dicembre 2008 alle 19:27
- Perfezioniamo il ProfileDataSorce, il 13 ottobre 2008 alle 11:14
- Un DataSource per il Profile, il 10 ottobre 2008 alle 15:06
- TrueSpace 7 gratuito, il 24 luglio 2008 alle 10:59
- adesso dico la mia sull'Iphone, il 22 luglio 2008 alle 10:33
- Come tutto ebbe inizio, il 21 luglio 2008 alle 09:22