Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Dynamically Register StyleSheet File in ASP.NET

0.00/5 (No votes)
20 Feb 2012 1  
How to register a stylesheet file at run time

Sometimes it is useful to register an external stylesheet file at runtime dynamically. For example, when we develop portals, this solution can helpful. Because a portal is a comprehensive web based application and a portal user must be able to implement its requirements.


I have a class in my portal that contains useful functions. The name of the class is Functions. In this class, I have many functions that help impement my requirements in a portal. The register stylesheet function is as follows:


C#
public static bool registerStyleSheetFileDynamic(string styleSheetFilePath, System.Web.UI.Page page)
{
 styleSheetFilePath = page.ResolveClientUrl(styleSheetFilePath);
 if (page != null)
 {
  System.Web.UI.HtmlControls.HtmlHead head = (System.Web.UI.HtmlControls.HtmlHead)page.Header;
  bool isExistStyleSheet = false;
  //head.StyleSheet.RegisterStyle(
  foreach (System.Web.UI.Control item in head.Controls)
  {
    if (item is System.Web.UI.HtmlControls.HtmlLink && 
          ((System.Web.UI.HtmlControls.HtmlLink)item).Attributes["href"] == styleSheetFilePath)
     {
      isExistStyleSheet = true;
     }
  }
  if (!isExistStyleSheet)
  {
   System.Web.UI.HtmlControls.HtmlLink link = new System.Web.UI.HtmlControls.HtmlLink();
   link.Attributes.Add("href", page.ResolveClientUrl(styleSheetFilePath));
   link.Attributes.Add("type", "text/css");
   link.Attributes.Add("rel", "stylesheet");
   head.Controls.Add(link);
  }
  return true;
 }
 return false;
}

In this case I can send my arbitrary page and path of stylesheet file to this method in any point in my portal page and so on. I hope the other parts are clear. Thanks!

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here