Page, Head e Style ovvero il buono il brutto e il cattivo

di Marco Leoncini, in asp.net,

citazioni a parte, chi ha realizzato WebControl, si è trovato volente o nolente tra le mani la classe Style.
la classe Style, Rappresenta lo stile di un WebControl.
la classe Style genere css inline, non il massimo per la riusabilità e la compatezza della

pagina.

in Asp.net 2.0 molto sta per cambiare.

prima novità, la classe Style presenta alcuni nuovi metodi, il primo utilissimo, un metodo

statico: IsStyleEmpty (Style s), per verificare se l'istanza passata al metodo sia o meno

vuota.
in Asp.net 1.0 per ottenere un comportamento simile, era necessario ridefinire con new il

metodo di istanza IsEmpty, e renderlo accessibile al WebControl.
altro nuovo metodo GetStyleAttributes(IUrlResolutionService urlResolver) che restituisce un

oggetto CssStyleCollection per l'oggetto specificato che implementi l'interfaccia

System.Web.UI.IUrlResolutionService ( in pratica tutte le classi che ereditano da Control).

a cambiamenti nella classe Style, corrispondono alcuni cambiamenti alla classe Page (non

sono gli unici e nemmeno i più importanti).
la proprietà Header restituisce un oggetto che implementi l'interfaccia IPageHeader.
l'interfaccia IPageHeader , definisce alcuni membri.
la proprietà che interessa gli amanti della classe Style :) è StyleSheet, che restituisce

un oggetto che implementa IStyleSheet.
e siamo arrivati alla fine :) IStyleSheet definisce un metodo RegisterStyle( Style

style,IUrlResolutionService urlResolver), con il quale finalmente potremo registrare e

vedere renderizzato il nostro Style nel Head della pagina.

ecco un esempio preso dalla documentazione:

void Page_Load(object sender, EventArgs e)
  {
    if (Page.Header != null)
    {
      // Create a Style object to hold style rules to apply to a Label control.
      Style labelStyle = new Style();
      labelStyle.ForeColor = System.Drawing.Color.DarkRed;
      labelStyle.BorderColor = System.Drawing.Color.DarkBlue;
      labelStyle.BorderWidth = 2;
      // Register the Style object so that it can be merged with 
      // the Style object of the controls that use it.
      Page.Header.StyleSheet.RegisterStyle(labelStyle, null);
      // Merge the labelCssStyle style with the label1 control's
      // style settings.
      label1.MergeStyle(labelStyle);
      label1.Text = "This is what the labelCssStyle looks like.";
    }
  }

 
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.

Nella stessa categoria
I più letti del mese