One easy way to do this is to replace your LINK tag in the ASPX with a Literal server control. The Literal control is a placeholder for rendering text into the HTML. By assigning your LINK tag to the Text property of a Literal, you manage the style sheet of a page from the code behind.
Here is an example ASPX file
<%@ Page language="c#" Codebehind="DynamicStyleSheet.aspx.cs" AutoEventWireup="false" Inherits="aspnet.DynamicStyleSheet" % > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML> <HEAD> <title>DynamicStyleSheet</title> <asp:Literal id="StyleSheet" runat="Server" /> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> <h6>hello world</h6> </form> </body> </HTML>
The corresponding code behind file
public class DynamicStyleSheet : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Literal StyleSheet;
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
const string styleFormat =
"<LINK href='\"{0}\"' type='\"text/css\"' rel='\"stylesheet\"'>";
string linkText;
linkText = String.Format(styleFormat, StyleSheetPath);
StyleSheet.Text = linkText;
}
}
protected string StyleSheetPath
{
get
{
// pull the stylesheet name from a database or xml file...
return ApplicationPath + "MyStyle.css";
}
}
private string ApplicationPath
{
get
{
string result = Request.ApplicationPath;
if(!result.EndsWith("/"))
{
result += "/";
}
return result;
}
}
}

Twitter
Search
About
Learn C#