Quiero agregar StyleSheets programáticamente en la sección de encabezado, pero uno de los ejemplos que vi parecía necesitar muchas líneas de código para agregar una sola hoja de estilos aunque pueda necesitar mucho:Agregar StyleSheets programáticamente en Asp.Net
Código Ejemplo:
HtmlLink css = new HtmlLink();
css.Href = "css/fancyforms.css";
css.Attributes["rel"] = "stylesheet";
css.Attributes["type"] = "text/css";
css.Attributes["media"] = "all";
Page.Header.Controls.Add(css);
también uso Page.Header.RenderControl()
método, pero no funcionaba. Objeto nulo algo error fue lanzado.
También utilicé Page.Header.InnerHtml
y InnerText += "<link .... "/>
cosas pero arrojaron el error literal, que creo que es un error común.
que utiliza este código:
List<Literal> cssFiles = new List<Literal>();
cssFiles.Add(new Literal() { Text = @"<link href=""" + ResolveUrl("~/Resources/Styles/MainMaster/MainDesign.css") + @""" type=""text/css"" rel=""stylesheet"" />" });
cssFiles.Add(new Literal() { Text = @"<link href=""" + ResolveUrl("~/Resources/Styles/MainMaster/MainLayout.css") + @""" type=""text/css"" rel=""stylesheet"" />" });
AddStyleRange(cssFiles);
private void AddStyleRange(List<Literal> cssFiles)
{
foreach (Literal item in cssFiles)
{
this.Header.Controls.Add(item);
}
}
Se trabajó al principio, pero cuando cambio las páginas que dejó de funcionar.
estoy usando página maestra y le escribo estos códigos en Master.cs
archivo y también algunas personas recomiendan usar en lugar de this.Header
Page.Header
pero cuando lo construí lanza un error que dice que no puedo declarar que de esta manera.
No debería ser tan difícil agregar muchos estilos.
Se está complicando.
Encontré una gotcha: asegúrate de que tu etiqueta
tenga runat = "server" o el código no la encontrará. – SteveCav