Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)qq
published in(发表于) 2014/7/9 1:37:11
asp.net2.0动态加载主题

asp.net2.0动态加载主题

动态加载主题

动态加载主题是指通过编程方式,在程序运行时,用户可以和Web应用程序进行交互,自定义Web应用程序的颜色和总体外观。实现动态加载主题的核心是修改Page对象的Theme属性值。用户可以将任何有效的主题名指派给该属性。然而,在实现过程中,使用Theme属性只能在页面的PreInit事件发生过程中或者之前设置。下面通过一个简单示例来说明动态加载主题的实现方法,加深读者的理解。

示例

创建一个简单的动态加载主题示例

该示例中包括一个下拉框控件和一个日历控件。下拉框控件中包含两个选项,一个是“启用样式1主题”,另一个是“启用样式2主题”。默认情况下,页面加载如图1所示的样式1,当更改下拉框选项后,页面将自动刷新,并加载如图2所示的样式2。



图1 动态加载主题(启用样式1)



图2 动态加载主题(启用样式2)

实现该示例需要创建两个主题和一个应用主题的Web页面。两个主题分别放在主题文件夹Themes1和Themes2中,并且每个主题中包含一个外观文件,用于设置日历控件的外观。主题文件夹Themes1中的外观文件Calendar1.skin的源代码如下:


BorderWidth="1px" Font-Names="Verdana" Font-Size="9pt" ForeColor="Black" Height="190px"

NextPrevFormat="FullMonth" Width="350px">












Font-Size="12pt" ForeColor="#333399" />



主题文件夹Themes2中的外观文件Calendar2.skin的源代码如下:


DayNameFormat="Shortest" Font-Names="Times New Roman" Font-Size="10pt" ForeColor="Black"

Height="220px" NextPrevFormat="FullMonth" TitleFormat="Month" Width="400px">






ForeColor="#333333" Width="1%" />








Height="10pt" />


Height="14pt" />



两段代码都用于设置日历控件的外观,下面讲解如何在Web页面中动态加载主题样式。

使用Theme属性指定页面的主题,只能在页面的PreInit事件发生过程中或者之前设置,本示例是在PreInit事件发生过程中修改Page对象的Theme属性值,其代码如下:

void Page_PreInit(Object sender, EventArgs e)

{

if (Request.QueryString["theme"] == null)

{

theme = "Themes1";

}

else

{

theme = Request.QueryString["theme"];

}

Page.Theme = theme;

ListItem item = DropDownList1.Items.FindByValue(theme);

if (item != null)

{

item.Selected = True;

}

}

下拉框控件中包含两个选项,一个是“启用样式1主题”,另一个是“启用样式2主题”,当用户选择任何一个选项时,都会触发DropDownList控件的SelectedIndexChanged事件,在该事件下,将选项的主题名存放在URL的QueryString(即theme)中,并重新加载页面,其代码如下:


If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759