A theme is a collection of property settings that allow you to define the look of pages and controls, and then apply the look consistently across pages in a Web application, across an entire Web application, or across all Web applications on a server.
Themes are made up of majorly by cascading style sheets (CSS), images, and other resources like skins. . Themes are defined in special directories in your Web site or on your Web server App_Themes
Global.asax File
Themes are made up of majorly by cascading style sheets (CSS), images, and other resources like skins. . Themes are defined in special directories in your Web site or on your Web server App_Themes
How to implement
Theme can only be applied on page while Pre_Init is under execution. One way is to keep the code to implement theme in all the pages or add into global.asax file.Global.asax File
void Application_PreRequestHandlerExecute(object src, EventArgs e)
{
Page _currentPageInRequest = this.Context.Handler as Page;
if (_currentPageInRequest != null)
{
_currentPageInRequest.PreInit += new EventHandler(page_PreInit);
}
}
void page_PreInit(object sender, EventArgs e)
{
Object _curSessionKey=HttpContext.Current.Session["CurrentTheme"];
if (_curSessionKey != null && (!string.IsNullOrEmpty(_curSessionKey.ToString())))
{
Page _currentPageInRequest = this.Context.Handler as Page;
_currentPageInRequest.Theme = _curSessionKey.ToString();
}
else
{
Page _currentPageInRequest = this.Context.Handler as Page;
_currentPageInRequest.Theme = "Default";
}
}
In above implementation, i have used Session variable to store current applied theme. You can use any mode of saving/reading of current theme. For example, database can be used to store current theme.
No comments:
Post a Comment