Applying Themes Dynamically : Themes « Development « ASP.NET Tutorial






File: Default.aspx

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<script runat="server">

    protected void Page_PreInit(object sender, EventArgs e)
    {
        if (Request["theme"] != null)
        {
            switch (Request["theme"])
            {
                case "Green":
                    Profile.userTheme = "GreenTheme";
                    break;
                case "Pink":
                    Profile.userTheme = "PinkTheme";
                    break;
            }
        }
        Theme = Profile.userTheme;
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Dynamic Theme</title>
</head>
<body>
    <form id="form1" runat="server">
    <div class="content">

    <h1>Dynamic Theme</h1>

    Please select a Theme:
    <ul>
    <li>
        <a href="Default.aspx?theme=Green">Green Theme</a>
    </li>
    <li>
        <a href="Default.aspx?theme=Pink">Pink Theme</a>
    </li>
    </ul>

    </div>
    </form>
</body>
</html>


File: Web.config


<configuration>
  <system.web>
    <profile>
      <properties>
        <add name="UserTheme" />
      </properties>
    </profile>
  </system.web>
</configuration>








9.42.Themes
9.42.1.An ASP.NET Theme enables you to apply a consistent style to the pages.
9.42.2.How Themes Work
9.42.3.Adding Skins to Themes
9.42.4.Creating Named Skins with a SkinID property
9.42.5.Themes Versus StyleSheetThemes
9.42.6.Override Skin properties by applying a Theme to a page with the StyleSheetTheme attribute instead of the Theme attribute.
9.42.7.Disabling Themes
9.42.8.Adding Cascading Style Sheets to Themes
9.42.9.Handling Theme Conflicts
9.42.10.Configure specific controls so they opt out of the theming process entirely.
9.42.11.Share the Theme among multiple web applications running on the same web server
9.42.12.Applying Themes Dynamically
9.42.13.Applying Skins Dynamically
9.42.14.Show Dynamic CSS