欢迎来到论文网! 识人者智,自知者明,通过生日认识自己! 生日公历:
网站地图 | Tags标签 | RSS
论文网 论文网8200余万篇毕业论文、各种论文格式和论文范文以及9千多种期刊杂志的论文征稿及论文投稿信息,是论文写作、论文投稿和论文发表的论文参考网站,也是科研人员论文检测和发表论文的理想平台。lunwenf@yeah.net。
您当前的位置:首页 > 科技论文 > 计算机论文

基于ASP.NET的网站换肤功能的简易实现

时间:2011-04-23  作者:秩名

论文导读:现在,Web站点的风格切换已经是很常见,尤其是主题换肤功能是很受大家欢迎的功能,比如大家熟知的个性化Google(http://www.google.cn/ig/china)就提供了几十款风格各异的主题供大家选择。本文介绍一种基于ASP.NET的主题Theme功能轻松实现网站的换肤功能。
关键词:ASP.NET,主题,皮肤
 

现在,Web站点的风格切换已经是很常见,尤其是主题换肤功能是很受大家欢迎的功能,比如大家熟知的个性化Google(http://www.google.cn/ig/china)就提供了几十款风格各异的主题供大家选择。免费论文。本文介绍一种基于ASP.NET的主题Theme功能轻松实现网站的换肤功能。

在 ASP.NET 2.0 出现以前, 给网站提供更换主题功能是一项繁重的工作,鉴于每切换一套主题,都需要在页面更改相应的图片、字体、网页样式等等细小的元素,因而在代码编写之余,更要求资源的规范管理。而往往在网站的编写初期,如果没有一定的经验,很难全面的考虑到资源文件的细致归类及放置问题。最终导致网站改版时,大量的迁移和更改,稍有不慎,还会引发文件丢失的问题。现在这些担忧,都在 ASP.NET 2.0 中得到了完善的解决。首先,您可以通过简单的代码编写实现复杂的功能;其次,ASP.NET 2.0 在处理主题的问题时提供了清晰的目录结构,使得资源文件的层级关系非常清晰,在易于查找和管理的同时,提供的良好的扩展性。

1.ASP.NET主题功能介绍

主题是 MicrosoftASP.NET 2.0 的一项新增功能,使用此功能可以一次定义一组控件的外观,并可以将该外观应用于整个 Web 应用程序。例如,通过利用主题功能,您可以在一个中心位置为应用程序中的所有 Textbox控件定义共同的外观,如背景颜色和前景颜色。 使用主题功能可以轻松建立并维护整个网站外观的一致性。

主题是在网站或 Web 服务器上的特殊目录中定义的,主题由一组元素组成:外观、级联样式表 (CSS)、图像和其他资源1。

l 外观,外观文件具有文件扩展名 .skin,它包含各个控件的属性设置。控件外观设置类似于控件标记本身,但只包含您要作为主题的一部分来设置的属性。有两种类型的控件外观:“默认外观”和“已命名外观”,当向页应用主题时,默认外观自动应用于同一类型的所有控件。如果控件外观没有“ SkinID” 属性,则是默认外观,已命名外观是设置了 “SkindID”属性的控件外观。

SKIN文件代码:

<asp: Button runat='server'BorderColor='red' BackColor='red' Width='150'BorderWidth='2px' SkinID='red' />

皮肤应用于按钮控件:

<asp:Button ID='Button2'runat='server' Text='Button' SkinID='Blue'/>

l 级联样式表,主题还可以包含级联样式表(.css 文件)。将 .css 文件放在主题文件夹中时,样式表自动作为主题的一部分加以应用。使用文件扩展名 .css 在主题文件夹中定义样式表。

2.三种 ASP.NET主题应用方法

主题应用有三种办法:

l 全局主题:在Web.config中<system.web>中添加<pages StyleSheetTheme='ThemeName'/>节,这样在整个应用中都会自动应用名为ThemeName 的主题。

l 页面主题:在ASPX文件顶部加入:<%@ PageLanguage='C#' StylesheetTheme=' ThemeName ' %>,这样当前页面都会应用名为ThemeName 的主题。

l 角色主题:需要使用母版页(“masterpage”) 来辅助实现 ,通过User.IsInRole(“RoleName”) 来判断用户是否属于某个角色,然后决定使用何种主题(Page. StyleSheetTheme =“ThemeName”);这样就可以应用用户选择的主题。

3.应用主题实现换肤功能的过程

本文采用最新的ASP.NET 3.5WEB开发技术结合最新的VisulStudio2008可视化开发平台实现网站换肤功能。功能效果如图1所示。免费论文。

具体实现过程如下:

第一步,创建主题。免费论文。首先需要在应用程序中创建正确的文件夹结构,为此,在Visual Studio中右击项目,选择Add ASP.NET Folder | Theme,来创建这个文件夹。注意此时,App_Themes文件夹中的主题文件夹不使用通常的文件夹图标,而使用包含一个画笔的文件夹图标,其次,建立主题文件夹,此文件夹的名称也就是页主题的名称。例如,如果您创建一个名为App_ThemesFirstTheme 的文件夹,则主题的名称为 FirstTheme。最后,将构成主题的控件外观、样式表和图像的文件添加到新文件夹中。本文所介绍的系统中,创建了四个主题:“海阔天空”、“梦幻天际”、“天地万物”和“默认”,当然在App_Themes文件夹中也创建了四个有相应名称的文件夹。效果如图2所示:

第二步,生成用户交互页面。在页面中放置一ListView控件,在每个数据行中添加以Image图像控件和Button按钮控件,并进行相应的设置,如图3所示。

ListView控件关键代码如下:

<asp:ImageID='Image2' runat='server' BorderStyle='Solid'BorderWidth='1px'ImageUrl='<%#Eval('Preview')%>'></td></tr><tr><td><%#Eval('Name') %>

</td></tr><tr><td align='center'>

<asp:ButtonID='Button1' runat='server' Text='添加主题' CommandName='btnthemeset'CommandArgument='<%#Eval('Name')%>' OnCommand='btn_OnClick'/>

</td>

第三步,后台功能逻辑处理。所需关键函数和代码如下:

protectedvoid getThemeSet()//获取系统主题,并生成DataTable对象。

{

DirectoryInfo di = newDirectoryInfo(Server.MapPath('~/App_Themes/'));

DirectoryInfo[] subDirs = di.GetDirectories();

DataTable dt = new DataTable();

dt.Columns.Add('ID');

dt.Columns.Add('PreView');

dt.Columns.Add('Name');

for (int i = 0; i < subDirs.Length; i++)

{

DataRow dr = dt.NewRow();

dr['ID'] = i;

dr['Preview'] = '~/App_Themes/' + subDirs[i].Name +'/background.jpg';

dr['Name'] = subDirs[i].Name;

dt.Rows.Add(dr);

}

ListView1.DataSource =dt.DefaultView;

ListView1.DataBind();

}

protectedvoid btn_OnClick(object sender, CommandEventArgs e)//获取主题,并应用于页面。

{

if (e.CommandName == 'btnthemeset')

{

Profile.theme =e.CommandArgument.ToString();

Server.Transfer('default.aspx');

}

}

结语

总之,页面人性化,个性化是大势所趋,今后将有越来越多的作品加入到主题中来,而且很有可能将开通自定义风格的功能。


【参考文献】
[1] http://msdn.microsoft.com/zh-cn/library/ykzx33wh(VS.80).aspx
 

 

查看相关论文专题
加入收藏  打印本文
上一篇论文:基于12530网站运行的监控与保护方案(图文)
下一篇论文:基于ATMELARM7处理器的USB协议实现
科技论文分类
科技小论文 数学建模论文
数学论文 节能减排论文
数学小论文 低碳生活论文
物理论文 建筑工程论文
网站设计论文 农业论文
图书情报 环境保护论文
计算机论文 化学论文
机电一体化论文 生物论文
网络安全论文 机械论文
水利论文 地质论文
交通论文
相关计算机论文
最新计算机论文
读者推荐的计算机论文