2010-04-14 9 views

Respuesta

17

Así es como normalmente se le agregue un CSS programáticamente:

protected void Page_Init(object sender, EventArgs e) 
{ 
    var link = new HtmlLink(); 
    link.Href = "~/styles/main.css"; 
    link.Attributes.Add("rel", "stylesheet"); 
    link.Attributes.Add("type", "text/css"); 
    Page.Header.Controls.Add(link); 
} 

puede que tenga que poner un runat="server" en la etiqueta head:

<head runat="server"> 
    <title>Add CSS example</title> 
</head> 
+0

Lo tengo. Me faltaba el Runat = "Servidor" en la etiqueta del encabezado de mi página maestra. :) ¡Gracias! –

+1

¿No sería esto un problema si agregaras el control, digamos, 10 veces en tu página? Entonces el archivo CSS estaría vinculado 10 veces. – Peter

+0

@Peter, sí, supongo que eso sería problemático. –

7

Para evitar el problema de múltiples hojas de estilo cuando se añade el controle 10 veces a la página, cambie levemente el código anterior:

string styleSheet = "stylesheetName.css"; 
if (this.Page.Header.FindControl(styleSheet) == null) 
{ 
    HtmlLink cssLink = new HtmlLink(); 
    cssLink.ID = styleSheet; 
    cssLink.Href = "~/styles/" + styleSheet; 
    cssLink.Attributes.Add("rel", "stylesheet"); 
    cssLink.Attributes.Add("type", "text/css"); 
    this.Page.Header.Controls.Add(cssLink); 
} 

Al darle una identificación al control, puede verificar si ya existe y asegurarse de que solo la agregue una vez.

Cuestiones relacionadas