`
zhangziyueup
  • 浏览: 1172768 次
文章分类
社区版块
存档分类
最新评论

ASP.NET:主题中的皮肤和样式表

 
阅读更多
  • ASP.NET:验证控件

  • ASP.NET:母版页与内容页

  • ASP.NET:主题中的皮肤和样式表

    一、加载主题(皮肤、样式表)的多种方式

    除了在页面指令中采用Theme或者StylesheetTheme为单个页面加载主题外,还可以通过配置文件为多个页面批量加载主题,另外,还可以通过改变页面的Theme属性值动态加载主题,或者通过改变控件的SkinID属性值动态加载主题中的皮肤,或者通过改变控件的CssClass属性值动态加载主题中的样式表。

    1、通过修改配置文件为多个页面批量加载主题

    在配置文件里添加Theme或者StyleSheetTheme属性

    <configuration>
    <
    system.web>
    <!—<pages theme=”Theme_XP”/>-->
    <
    pages styleSheetTheme="Theme_XP"/>
    </
    system.web>
    </
    configuration>

    此时配置文件目录下的所有页面都会自动加载改主题,但记得去掉Page指令里的Theme或者StyleSheetTheme属性,否则会重写配置文件的里的对应属性。

    2、通过改变页面的Theme属性值动态加载主题

    在页面的PreInit事件中可以动态加载主题,此时皮肤文件和样式表文件会同时被加载,但在该事件中不能够调用页面的控件,因为在此事件中,页面控件还未初始化。
    <%@ PageLanguage="C#"Theme="DynamicTheme"%>

    ……
    <ahref="DynamicTheme.aspx?theme=XP">Theme_XP</a>
    <a href="DynamicTheme.aspx?theme=Win7">Theme_Win7 </a>

    ……
    protected void
    Page_PreInit(object sender,EventArgse)
    {
    Theme = "Theme_XP";
    if (Request["theme"] !=null)
    {
    switch (Request["theme"])
    {
    case "XP":
    Theme = "Theme_XP";
    break;
    case "Win7":
    Theme = "Theme_Win7";
    break;
    }
    }
    }

    3、通过改变控件的SkinID属性值动态加载主题中的皮肤

    除了在页面的PreInit事件中动态加载主题外,还可以在PreInit事件中选择加载主题中的皮肤,但皮肤只能是命名皮肤。
    <%@ PageLanguage="C#"Theme="DynamicCSS"%>
    ……
    <a href="showdynamicskin.aspx?skin=professional">Professional</a>
    <
    a href="showdynamicskin.aspx?skin=colorful">Colorful</a>
    ……
    protected void Page_PreInit(objectsender,EventArgs e)
    {
    if (Request["skin"] !=null)
    {
    switch (Request["skin"])
    {
    case "professional":
    grdMovies.SkinID = "Professional";
    break;
    case "colorful":
    grdMovies.SkinID = "Colorful";
    break;
    }
    }
    }

    4、通过改变控件的CssClass属性值动态加载主题中的样式表

    除了动态加载主题外,还可以选择加载主题中的样式表。
    样式表文件:App_Themes\DynamicCSS\GridView.CSS
    .Professional td
    {
    padding:4px;
    color:#333333;
    background-color:#F7F6F3;
    }
    .Professional .Header th
    {
    padding:4px;
    background-color:#5D7B9D;
    font-weight:bold;
    color:White;
    }
    .Professional .Alternating td
    {
    background-color:White;
    color:#284775;
    }
    .Colorful td
    {
    padding:4px;
    color:#333333;
    background-color:#FFFBD6;
    }
    .Colorful .Header th
    {
    padding:4px;
    background-color:#990000;
    font-weight:bold;
    color:White;
    }
    .Colorful .Alternating td
    {
    background-color:White;
    }

    <%@ PageLanguage="C#"Theme="DynamicCSS"%>
    ……
    <asp:GridViewid="grdMovies"Runat="server" DataSourceID="srcMovies"GridLines="none"
    HeaderStyle-CssClass="Header"
    AlternatingRowStyle-CssClass="Alternating"/>

    <asp:DropDownList
    id="ddlCssClass"
    Runat="server">
    <
    asp:ListItemText="Professional" />
    <
    asp:ListItemText="Colorful" />
    </
    asp:DropDownList>
    ……
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
    grdMovies.CssClass = ddlCssClass.SelectedItem.Text;
    }

    二、禁用主题(皮肤、样式表)

    当加载主题到页面后,因为某些原因需要禁用某个页面的主题,或者说禁用某个控件的主题,此时我们可以采用设置Theme或者StyleSheetTheme为空来完成。而设置EnableTheming为False禁用的只是主题中的皮肤。

    禁用主题:设置Theme或者StyleSheetTheme为空来完成,或者创建一个空的主题文件,然后关联它。

    禁用主题中的皮肤:当以Theme方式加载主题时,我们可以设置控件或者页面的EnableThemeing为False禁用主题中的皮肤。

    三、Theme和StyleSheetTheme的异同

    两者都可用来加载指定的主题,当主题中不包含皮肤文件时,两者效果一样,当主题中包含皮肤文件时,两者因优先级不一样会产生不一样的效果,优先级依次为:StyleSheetTheme->Page->Theme,后面的会重写前面的相同部分。

    皮肤文件:App_Themes\Theme1\TextBox.skin
    <%--TextBox默认皮肤--%>
    <asp:TextBoxrunat="server"BackColor="Red"/>
    <%--TextBox命名皮肤1--%>
    <asp:TextBoxrunat="server"BackColor="Yellow"SkinId="txtName"/>
    <%--TextBox命名皮肤2--%>
    <asp:TextBoxrunat="server"BackColor="Blue" SkinId="txtAge"/>

    1、页面以Theme方式加载主题
    <%@ PageLanguage="C#"AutoEventWireup="true"CodeFile="Default1.aspx.cs"Inherits="Default1"Theme="Theme1"%>
    ……
    <form>
    <div>
    <asp:TextBoxID="TextBox1"runat="server" BackColor="Black"></asp:TextBox>
    <
    asp:TextBoxID="TextBox2 "runat="server" SkinID="txtName"BackColor="Black"></asp:TextBox>
    <
    asp:TextBoxID="TextBox3"runat="server" SkinID="txtAge"></asp:TextBox>
    </
    div>
    </
    form>

    页面运行后的效果及生成的部分html代码如下,显然,主题中的皮肤文件TextBox.skin重写了页面中三个TextBox控件的相关皮肤属性BackColor,最终其值依次变成了Red,Bule,Yellow。
    1
    <input name="TextBox1" type="text" id="TextBox1" style="background-color:Red;" />

    <input name="TextBox2" type="text" id="TextBox2" style="background-color:Yellow;" />

    <input name="TextBox3" type="text" id="TextBox3" style="background-color:Blue;" />

    2、页面以StylesheetTheme方式加载主题
    <%@ Page Language="C#"AutoEventWireup="true"CodeFile="Default2.aspx.cs"Inherits="Default2"StylesheetTheme="Theme1"%>
    ……
    <form>
    <div>
    <asp:TextBoxID="TextBox1"runat="server" BackColor="Black"></asp:TextBox>
    <
    asp:TextBoxID="TextBox2 "runat="server" SkinID="txtName"BackColor="Black"></asp:TextBox>
    <
    asp:TextBoxID="TextBox3"runat="server" SkinID="txtAge"></asp:TextBox>
    </
    div>
    </
    form>

    页面运行后的效果及生成的部分html代码如下,显然,页面中前两个TextBox控件的相关皮肤属性BackColor重写了主题中的皮肤文件TextBox.skin,最终其值依次变成了Black,Black,Blue。
    1
    <input name="TextBox1" type="text" id="TextBox1" style="background-color:Black;" />

    <input name="TextBox2" type="text" id="TextBox2" style="background-color:Black;" />

    <input name="TextBox3" type="text" id="TextBox3" style="background-color:Blue;" />

  • 分享到:
    评论

    相关推荐

      asp.net知识库

      体验 .net2.0 的优雅(2) -- ASP.net 主题和皮肤 NET2.0系列介绍(一).NET 2.0 中Web 应用程序主题的切换 ASP.NET 2.0 中Web 应用程序主题的切换 2.0正式版中callback的一些变化+使用示例(ASP.NET 2.0) Server ...

      asp.net教学讲义

      第一章:asp.net和web窗体 6 1.1 NET应用开发架构简介 6 1.1.1. NET框架结构 6 1.1.2 http协议简介 6 1.1.3 静态网页与动态网页 8 1.1.4 客户端代码与服务器端代码 8 1.1.5 ASP.NET简介 8 1.2 Web 窗体与ASP.NET页面...

      ASP.NET的网页代码模型及生命周期

      同时,将ASP.NET中的页面样式代码和逻辑处理代码分离能够让维护变得简单,同时代码看上去也非常的优雅。在.aspx页面中,代码隐藏页模型的.aspx页面代码基本上和单文件页模型的代码相同,不同的是在script标记中的单...

      asp.net主题资源包(1)

      asp.net主题资源包程序,包含各种皮肤样式表,也可以定义自己所喜欢的样式

      ASP.NET 3.5 开发大全

      第12章 ASP.NET的皮肤、主题和母版页 12.1 皮肤和主题 12.1.1 CSS简介 12.1.2 CSS基础 12.1.3 CSS常用属性 12.1.4 将CSS应用在控件上 12.1.5 主题和皮肤 12.1.6 页面主题和全局主题 12.1.7 应用和禁用主题 12.1.8 用...

      ASP.NET3.5从入门到精通

      第 12 章 ASP.NET 的皮肤、主题和母版页 12.1 皮肤和主题 12.1.1 CSS 简介 12.1.2 CSS 基础 12.1.3 CSS 常用属性 12.1.4 将CSS 应用在控件上 12.1.5 主题和皮肤 12.1.6 页面主题和全局主题 12.1.7 应用和禁用主题 ...

      ASP.NET 3.5 开发大全word课件

      第12章 ASP.NET的皮肤、主题和母版页 12.1 皮肤和主题 12.1.1 CSS简介 12.1.2 CSS基础 12.1.3 CSS常用属性 12.1.4 将CSS应用在控件上 12.1.5 主题和皮肤 12.1.6 页面主题和全局主题 12.1.7 应用和禁用主题 12.1.8 用...

      asp.net主题资源包(2)

      asp.net主题资源包安装程序,包含各种皮肤样式表,也可以定义自己所喜欢的样式,下载后有不会用的To Email:393787039@qq.com

      FCKeditor 网页文本编辑器ASP.NET版

       4、编辑器域内默认的显示字体为12px,想要修改可以通过修改样式表来达到要求,打开/editor/css/fck_editorarea.css,修改font-size属性即可。如font-size: 14px;  5、关于安全性。  FCKConfig.ToolbarSets[...

      asp.net博客系统

      本博客采用ASP.NET2.0 c# + MSSQL2005 + XML + jquery + anthem.net开发,暂时为单用户版本,以下简单介绍... 程序基于类似petshop的标准三层架构,方便维护与扩展(不过暂时只支持MSSQL数据库-_-||) 前台使用...

      ASP.NET 3.5 开发大全11-15

      第12章 ASP.NET的皮肤、主题和母版页 12.1 皮肤和主题 12.1.1 CSS简介 12.1.2 CSS基础 12.1.3 CSS常用属性 12.1.4 将CSS应用在控件上 12.1.5 主题和皮肤 12.1.6 页面主题和全局主题 12.1.7 应用和禁用主题 12.1.8 用...

      ASP.NET 3.5 开发大全1-5

      第12章 ASP.NET的皮肤、主题和母版页 12.1 皮肤和主题 12.1.1 CSS简介 12.1.2 CSS基础 12.1.3 CSS常用属性 12.1.4 将CSS应用在控件上 12.1.5 主题和皮肤 12.1.6 页面主题和全局主题 12.1.7 应用和禁用主题 12.1.8 用...

      ASP.NET通用权限管理框架

      1.动态切换皮肤,目前有两狂UI 蓝色,咖啡色 2.表单验证,文本框高亮起来 3.可以动态分配权限按钮,分配角色权限,目录结构,栏目的链接都可以修改。权限管理非常灵活, 4.可以隐藏左侧导航栏,打开左侧导航栏,默认...

      ASPNET35开发大全第一章

      第12章 ASP.NET的皮肤、主题和母版页 12.1 皮肤和主题 12.1.1 CSS简介 12.1.2 CSS基础 12.1.3 CSS常用属性 12.1.4 将CSS应用在控件上 12.1.5 主题和皮肤 12.1.6 页面主题和全局主题 12.1.7 应用和禁用主题 12.1.8 用...

      西路ASP留言本WGB Ver3.0

      2、管理员可以设置默认皮肤和修改皮肤的样式。 3、管理员可以对留言本进行在线设置,其中包括屏蔽,最大留言数,防灌水等等功能。 4、留言可以悄悄话发送给版主,其他用户看不见。 5、两种分页形式供选择。 6、...

      给力论坛源码 标注:用iis访问就会有样式

      DotBBS是一个Asp.Net开源论坛,轻量、安全、易扩展。深受广大用户喜爱,包括 CSDN、华军软件园、中国站长站 等各大专业网站纷纷转载。官方支持:http://www.dotbbs.net/bbs , DotBBS包括Access版和Sql Server版,可以...

      一款非常好的WPF编程宝典2010 源代码

      2.3 XAML中的属性和事件 26 2.3.1 简单属性与类型转换器 27 2.3.2 复杂属性 29 2.3.3 标记扩展 30 2.3.4 附加属性 31 2.3.5 嵌套元素 32 2.3.6 特殊字符与空白字符 35 2.3.7 事件 36 2.3.8 完整的Eight Ball...

      百姓房产中介系统 v4.2

      1、asp.net开发,简单易用,功能超强,速度无与论比,安全性好。 2、房源信息中的联系人及电话可以自定义为原房东或者房产中介。 3、快速、方便地登记、查询、修改、删除房源信息及客户信息。 4、支持URL重写...

      Fckeditor2.6.3

      6、编辑器域内默认的显示字体为12px,想要修改可以通过修改样式表来达到要求,打开/editor/css/fck_editorarea.css,修改font-size属性即可。如font-size: 14px; 7、关于安全性。 如果你的编辑器用在网站前台的话...

    Global site tag (gtag.js) - Google Analytics