ASP.NET gives you the opportunity to add script blocks and JavaScript includes
at runtime using methods like 
ClientScriptManager.RegisterClientScriptInclude().
How to perform a similar action to include style sheets?
There's no native method, but it's quite simple to perform: we're going to
use the HtmlLink control.
HtmlLink link = new HtmlLink();
link.Href = "./MyFolder/MyStyleSheet.css"; 
link.Attributes.Add("type", "text/css"); 
link.Attributes.Add("rel", "stylesheet");
Page.Header.Controls.Add(link);
 
An interesting parameter of the 
ClientScriptManager.RegisterClientScriptInclude() method is the Key,
that's used to assure you do not add the same include twice.
How to perform the same thing with the previous code?
The solution is to give the control a unique id:
public void AddStyleLink(String Key, String StyleUrl)
{
    if (!String.IsNullOrEmpty(Key))
        if (Page.Header.FindControl(Key) != null) return;
 
    HtmlLink link = new HtmlLink();
    if (!String.IsNullOrEmpty(Key)) link.ID = Key;
    link.Href = StyleUrl; 
    link.Attributes.Add("type", "text/css"); 
    link.Attributes.Add("rel", "stylesheet");
    Page.Header.Controls.Add(link);
}
 
 

Do you like this blog?
For us your opinion matters, so we would be very pleased if you could write a review about us or our blog.