ASP.NET2.0中themes、Skins轻松实现网站换肤!

news/2024/5/12 20:27:49/文章来源:https://blog.csdn.net/weixin_34234823/article/details/89746663

可能有些朋友还不是很清楚themes、skins。下面先介绍下themes、skins.。

一、简介:
一看Themes、Skins这2名字就都知道是用来做什么的了吧,下面就说下它是做什么的(怎么都知道了还说,~_~),利用Themes我们可以很容易的更改控件、页面的风格,而不需要修改我们的代码和页面文件。
Themes文件被单独的放在1个App_Themes文件夹下面,与你的程序是完全分开的。

二、怎么使用Themes和Skins:
先看个非常简单的实例:

App_Themes\default\1.skin文件代码:

None.gif<asp:Label Font-Bold="true" ForeColor="Red" runat="server" />

default.aspx:文件代码:

ExpandedBlockStart.gif<%@ Page Language="C#" Theme="default" %>
None.gif<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
None.gif<html xmlns="http://www.w3.org/1999/xhtml">
None.gif<head id="Head1" runat="server">
None.gif  <title>Page with Example Theme Applied</title>
None.gif</head>
None.gif<body>
None.gif  <form id="form1" runat="server">
None.gif      <asp:Label ID="Label1" runat="server" Text="Hello 1" /><br />
None.gif      <asp:Label ID="Label2" runat="server" Text="Hello 2" /><br />
None.gif  </form>
None.gif</body>
None.gif</html>
None.gif

可以看到我们在default.aspx并没有写如何的控制style的代码,但运行取发现label上的字都变成了粗体红色了,这就是1个最基本的theme例子。

App_Themes文件夹:
App_Themes文件夹位于程序的根目录下,App_Themes下必须是Theme名称的子文件夹,子文件夹中可以包含多个.skin和.css文件。下图中建立2个Theme,名称分别为default和default2:
t_theme.JPG

使用themes
1、在1个页面中应用Theme:
      如果想在某1个页面中应用Theme,直接在aspx文件中修改<%@ Page Theme="..." %>,比如你想这个页面应用default2 theme,设置<%@ Page Theme="default2" %>就OK

2、在所有页面应用同1个Theme:
      如果要在所有页面上使用相同的Theme,在web.config中的<system.web>节点下加上句<pages theme="..."/>

3、让控件不应用Theme:
        第1个例子中我们看到了2个Label的风格都变了,就是说.skin文件中的风格在页面上所有Label都起作用了。但有时我们希望某1个Label不应用.skin中的风格,这时你只需设置Label的EnableTheming属性为false的时候就可以了。
        也许你还想不同的label显示不同的风格,你只需设置label的SkinID属性就可以,见下面的实例:
 App_Themes\default\1.skin

None.gif<asp:label runat="server" font-bold="true" forecolor="Red" />
None.gif<asp:label runat="server" SkinID="Blue" font-bold="true" forecolor="blue" />

deafult.aspx

ExpandedBlockStart.gif<%@ Page Language="C#" Theme="default" %>
None.gif<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
None.gif<html xmlns="http://www.w3.org/1999/xhtml">
None.gif<head id="Head1" runat="server">
None.gif  <title>Page with Example Theme Applied</title>
None.gif</head>
None.gif<body>
None.gif  <form id="form1" runat="server">
None.gif      <asp:Label ID="Label2" runat="server" Text="Hello 2" SkinID="Blue" /><br />
None.gif      <asp:Label ID="Label3" runat="server" Text="Hello 3" /><br />
None.gif  </form>
None.gif</body>
None.gif</html>

运行后就会发现2个label显示的风格不一样了。

4、其他方法:
前面已经说了在aspx文件头使用 <%@ Page Theme="..." %> 来使用theme,而用这个方法应用theme中的风格将会覆盖你写在aspx中的控件属性style。比如:
 App_Themes\default\1.skin

None.gif<asp:Label Font-Bold="true" ForeColor="Red" runat="server" />

default.aspx

ExpandedBlockStart.gif<%@ Page Language="C#" Theme="default" %>
None.gif<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
None.gif
None.gif<html xmlns="http://www.w3.org/1999/xhtml">
None.gif<head id="Head1" runat="server">
None.gif</head>
None.gif<body>
None.gif  <form id="form1" runat="server">
None.gif      <asp:Label ID="Label1" runat="server" Text="Hello 1" /><br />
None.gif      <asp:Label ID="Label2" runat="server" Text="Hello 2" ForeColor="blue" />
None.gif  </form>
None.gif</body>
None.gif</html>

运行结果,所有的label的forecolor都为red。

 而使用<%@ Page StyleSheetTheme="..." %>应用theme就不会覆盖你在aspx文件中写的属性style:

控件应用style属性的顺序如下:
a、StyleSheetTheme引用的风格
b、代码设定的控件属性(覆盖StyleSheetTheme)
c、Theme引用的风格(覆盖前面2个)

theme中包含CSS:
        theme中也可以使用.css文件,当你把.css文件放在1个theme目录下后,在用到了这个theme的页面中自动会应用你的.css的

三、后台代码轻松为网站换府肤
        前面讲的都是在aspx文件或web.config中应用theme,而在blog这样的每个用户都有不同的skin的网站中用上面的方法来实现换skin显然是不方便的。
       下面就介绍怎么在后台代码中动态的引用theme来解决上面的情况,theme必须在page被请求的最早期就应用上,所以我们必须在Page_PreInit事件中写代码,代码很简单,就1句:
        Page.Theme = "...";  
这里我们只要从数据库中去读取每个用户设置的不同theme名就可以轻松实现每个用户都有不同的skin了。

------------------------------------------
以上都是个人的看法和体会,如有不妥处,还请大家多多指点,谢谢!












本文转自BearRui(AK-47)博客园博客,原文链接:http://www.cnblogs.com/BearsTaR/archive/2006/04/10/Theme.html    ,如需转载请自行联系原作者



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_770407.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大型网站架构技术一览

网站系统架构层次如下图所示&#xff1a; 1.前端架构 前端指用户请求到达网站应用服务器之前经历的环节&#xff0c;通常不包含网站业务逻辑&#xff0c;不处理动态内容。 浏览器优化技术 并不是优化浏览器&#xff0c;而是通过优化响应页面&#xff0c;加快浏览器页面的加载…

做电商网站php开发的流程,如何开发电商平台-电商开发第一步

快速开发电商平台&#xff0c;创建一个企业电商网站&#xff0c;同时获得盈利的巨额收益要怎么做呢&#xff1f;但是你如何创建电子商务网站呢?易龙天电商网站开发工程师及七星迪曼整合营销专家为您解答&#xff0c;通过9个步骤创建企业级电子商务网站。构建电子商务网站的分步…

从上百幅架构图中学大型网站建设经验--上(转)

原文&#xff1a;从上百幅架构图中学大型网站建设经验&#xff08;上&#xff09;引言近段时间以来&#xff0c;通过接触有关海量数据处理和搜索引擎的诸多技术&#xff0c;常常见识到不少精妙绝伦的架构图。除了每每感叹于每幅图表面上的绘制的精细之外&#xff0c;更为架构图…

搜索引擎优化的用乐云seo_哪些类型的网站更佳适合做SEO搜索引擎优化

互联网上的网站有很多&#xff0c;且随着近些年移动互联网的发展&#xff0c;越来越多的网站不仅面对PC端还要解决在移动端方面的优化问题。但对于网站&#xff0c;由于其网站的构成形式以及行业情况来说&#xff0c;有时并不是所有的网站都完全适合进行SEO的搜索引擎优化。当然…

python网站开发实例 flask_Python Web框架Flask下网站开发入门实例

{%if islogin 1 %}Welcome ,{{username}}!{%else%}{{username}}!{%endif%}{%for nav in nav_list%}{{nav}}{%endfor%}{{blog[title]}}{{blog[content]}}{%for key,value in blogtag.items()%}{{key}}({{value}}){%endfor%}

python二分法查找算法_「二分法」二分法,三分法 - seo实验室

二分法 二分法定义&#xff1a;在一个单调有序的集合中查找元素&#xff0c;每次将集合分为左右两部分&#xff0c;判断解在哪个部分中并调整集合上下界&#xff0c;重复直 到找到目标元素。 优点&#xff1a;时间短&#xff0c;如若超时可以采取…

Tomcat9使用免费的Https证书加密网站

1.概述 Apache Tomcat是一款优秀的Java Web容器&#xff0c;对于各个站长来说&#xff0c;可以很方便的使用Tomcat将自己的网站博客放在公网的服务器上&#xff0c;分享自己的心得以及个人博客。 那么在公网中的访问&#xff0c;没有被第三方公认可信的机构加密时&#xff0c;会…

动态网站的技术路线_如何对网站结构方面进行优化呢?

关于网站结构优化对于很多人来说有点陌生&#xff0c;今天搜到老张就带大家了解一下网站结构优化的相关知识点。网站结构优化在网站优化过程中重要的一部分&#xff0c;那么在进行网站结构优化的过程中有那些细节是需要引起大家注意的呢&#xff1f;1、URL优化&#xff1a;通过…

同一个页面生成多个sessionid_网站在线客服代码生成工具

摘要&#xff1a;在线客服代码生成工具一直以来是想要给网站添加在线客服的用户所需要的&#xff0c;通过生成出来的代码复制到网站上可以直接实现在线客服的功能&#xff0c;本文将重点为大家推荐这款在线客服代码的生成工具。在线客服代码如何生成想要获取在线客服代码&#…

网站实现https 申请Let's Encrypt永久免费SSL证书

2019独角兽企业重金招聘Python工程师标准>>> Lets Encrypt简介 Lets Encrypt作为一个公共且免费SSL的项目逐渐被广大用户传播和使用&#xff0c;是由Mozilla、Cisco、Akamai、IdenTrust、EFF等组织人员发起&#xff0c;主要的目的也是为了推进网站从HTTP向HTTPS过度…

php 网站 seo,SEO技术:PHP页面的SEO优化

江苏金鼎网络科技 > 行业动态 > SEO技术&#xff1a;PHP页面的SEO优化SEO技术&#xff1a;PHP页面的SEO优化编辑 :金鼎网络 时间 : 2019-07-11 10:50 浏览量 : 85PHP是一种快速的服务器端语言&#xff0c;通常用于创建MySQL的依赖项和新名称&#xff0c;并使用PHP进行简单…

Java生成sitemap网站地图

sitemap 是什么&#xff1f;对应没有接触过网站 SEO 的同学可能不知道&#xff0c;这里引用一下百度站长的一段解释。 Sitemap&#xff08;即站点地图&#xff09;就是您网站上各网页的列表。创建并提交Sitemap有助于百度发现并了解您网站上的所有网页。您还可以使用Sitemap提供…

28.分析采集美团网站信息-2

28.分析采集美团网站信息-2 接着昨天的思路&#xff0c;继续分析&#xff0c;要想获取信息&#xff0c;就要抓获xhr中js请求。如图&#xff1a; 1.明显可以看的出request url 是由若干参数拼接而成。2._token 参数很显而易见 是个重要的请求参数&#xff0c;而且在一段时间内是…

网站实时镜像

问题 公司的网站服务器有两个镜像站点&#xff0c;分别放在北京和上海的IDC机房。现在要求利用rsync同步机制实现“服务器A–>服务器B”的实时镜像同步。 需要完成的配置任务如下&#xff1a; 1)双方的目录均为 /var/www/html/ 2)以 svr5 为同步发起方&#xff0c;配置 in…

LINUX 配置httpd网站服务

问题 默认安装的httpd服务并未指定域名&#xff0c;因此启动服务时会出现“httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName”的异常信息&#xff0c;本例中要求将Web网站的名称设置为svr5.tedu.cn。 另外&am…

LINUX 网站实时镜像

问题 公司的网站服务器有两个镜像站点&#xff0c;分别放在北京和上海的IDC机房。现在要求利用rsync同步机制实现“服务器A–>服务器B”的实时镜像同步。 需要完成的配置任务如下&#xff1a; 1)双方的目录均为 /var/www/html/ 2)以 svr5 为同步发起方&#xff0c;配置 inot…

网站性能优化有哪些方法

网站性能优化有哪些方法 一、总结 一句话总结&#xff1a; web前端性能优化&#xff1a;浏览器访问优化、CDN加速、反向代理 应用服务器性能优化&#xff1a;分布式缓存、异步操作、使用集群、代码优化 web前端性能优化方法有哪些1. 浏览器访问优化&#xff1a;减少http请求&am…

php 实时监测网站是否异常_导轨式智能电表COUNTISE02电量监测型

导轨式智能电表COUNTISE02电量监测型导轨式智能电表COUNTISE02电量监测型导轨式智能电表COUNTISE02电量监测型江苏舜高智能科技有限公司(Synchro Intelligent)致力于为用户端能效管理和用电、设备运维的系统解决方案&#xff0c;帮助用户实现能源的可视化管理&#xff0c;能源数…

rsync+rsync同步和网站实时镜像

2.rsyncrsync同步 采用rsyncSSH的远程同步时&#xff0c;使用起来是最简单的&#xff0c;但是目标用户也被允许SSH登录到远程主机的Shell环境。在某些情况下&#xff0c;企业会希望只提供需要认证的同步目录资源&#xff0c;但并不希望提供远程登录&#xff0c;这时候就可以采…

一个网站大概多少钱_做一个医疗网站需要多少钱?

相信很多医疗从业者对于互联网的的需求无非就是关注网站设计的价格。但是如果真有这样的网站设计公司没有了解医疗行业就去给你们报价的话&#xff0c;那么这样的公司做的网站更多的会不契合医疗企业。所以真的想知道做一个医疗行业网站设计需要多少钱&#xff0c;那么就需要去…