ASP.net CSS

ASP.NET主题功能从ASP.NET 2.0版本已经开始支持了,用来定义页面和控件的外观,主题由一组元素组成:外观,CSS,图像和其他资源。

  1.外观

  外观文件具有文件拓展名.skin,它包含各个控件的属性和样式属性设置。例如,下面是几个服务器控件的外观定义:

  <asp:Label Runat="server" ForeColor="#004000" BackColor="#C0C0FF"/>

  <asp:TextBox Runat="server" ForeColor="#004000" BackColor="#C0C0FF"/>

  <asp:Button Runat="server" ForeColor="#004000" BackColor="#C0C0FF"/>

  当页面应用主题时,默认外观自动应用于同一类型的所有控件。

  如果控件外观设置了SkinID属性,则会按SkinID呈现相应外观,如:

  <asp:TextBox Runat="server" ForeColor="#004000" BackColor="#C0C0FF"/>

  <asp:TextBox Runat="server" ForeColor="#004000" BackColor="#C0C0FF" SkinID="skindot"/>

  <asp:TextBox Runat="server" ForeColor="#004000" BackColor="#C0C0FF" SkinID="skinbat"/>

  页面端设置为:

  <form id="form1" runat="server">

  <div>

     <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

     <asp:TextBox ID="TextBox1" runat="server" SkinID="skindot"></asp:TextBox>

     <asp:TextBox ID="TextBox1" runat="server" SkinID="skinbat"></asp:TextBox>

  </div>

  </form>

  以上三个TextBox分别应用了外观中的三个样式。

  注意:Skin文件定义的样式只有在运行时才可以看到,在设计模式是看不到的。

       Skin文件定义的样式只适用于服务端控件。

 

2.级联样式表(CSS)

  主题还可以包含级联样式表(.CSS文件)。将css文件放在主题文件夹中时,样式表自动作为主题的一

 

部分加以应用。

  3.主题图形和其他资源

  这些资源主要包括控件所需图片,脚本文件,声音文件。

 

  主题可以应用于整个应用程序级别,页面级别,服务器控件级别。

  (1) 应用于整个应用程序级别

  在Web.config文件中配置:

  <configuration>

     <system.web>

         <pages theme="主题文件夹名">

     </system.web>

  </configuration>

  另外如果在Machine.config文件中定义了<pages>元素,主题将应用于服务器上的Web应用程序中的

 

所有页。

  (2) 应用于页面级别

  在页面中如下配置:

  <%@ Page Language="C#" Theme="主题文件夹名" EnableTheming="true"%>

  (3) 应用于服务器控件级别

  <asp:Textbox ID="TextBox1" Runat="server" Theme="主题文件夹名" EnableTheming="true">

  注意:如果页面禁用了主题,即使控件设置了EnableTheming="true" 也无法应用主题。

 

 

ASP.NET主题的使用

   在解决方案窗口右键单击当前站点名称,依次选择"ASP.NET文件夹→主题",会创建一个名为App_Themes的文件夹,此文件夹由系统命名,不

 

能重命名。在该文件夹下建立两个主题文件夹:Autumn和Spring。现在可以在主题文件夹下建立.skin文件和.css文件。现在我们就可以

 

在.skin文件与.css文件中来设计页面元素的样式了。

   运用:换肤

   后台代码:

   protected void Page_Load(object sender,EventArgs e)

   {

     if(!Page.IsPostBack)

     {

       if(Session["CurrentTheme"]!=null)

       {

         this.DropDownList1.SelectedIndex=this.DropDownList1.Items.IndexOf(this.DropDownList1.Items.FindByValue(Session

 

["CurrentTheme"]).ToString());

       }

     }

   }

   protected void Page_PreInit(object sender,EventArgs e)

   {

     if(Session["CurrentTheme"]!=null)

     {

       this.Page.Theme=Session["CurrentTheme"].ToString());        

     }

     else

     {

       this.Page.Theme="Spring";

     }

    }

   protected void DropDownList1_SelectedIndexChanged(object sender,EventArgs e)

   {

    Session["CurrentTheme"]=this.DropDownList1.SelectedValue;

    Response.Redirect("该页.aspx");

   }

   这里的当前选中的主题是在Session中存储的。ASP.NET规定主题设置必须在Page_PreInit事件中或之前完成,所以这里定义了此事件,此事件是先于Page_Load事件的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#,读做 "C sharp",中文译音暂时没有,非专业人士一般读"C井",专业人士一般读"C sharp"。   C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏和模版,不允许多重继承)。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。 C# 并且C#成为ECMA与ISO标准规范。C#看似基于C++写成,但又融入其它语言如Pascal、Java、VB等。   微软c#语言定义主要是从C和C++继承而来的,而且语言中的许多元素也反映了这一点.C#在设计者从C++继承的可选选项方面比Java要广泛一些(比如说struts),它还增加了自己新的特点(比方说源代码版本定义).但它还太不成熟,不可能挤垮Java.C#还需要进化成一种开发者能够接受和采用的语言.而微软当前为它的这种新语言大造声势也是值得注意的.目前大家的反应是:"这是对Java的反击."   C#更像Java一些,虽然微软在这个问题上保持沉默.这也是意料中的事情,我觉得,因为Java近来很成功而使用Java的公司都报告说它们在生产效率上比C++获得了提高.   Java所带来的巨大影响和大家对它的广泛接受已经由工作于这种语言和平台之上的程序员数量明显的说明了(估计世界范围内共有两百五十万程序员使用Java).由这种语言写成的应用程序的数量是令人惊讶的并已经渗透了每一个级别的计算,包括无线计算和移动电话(比如日本发明的Java电话).C#能够在用户领域获得这样的礼遇吗?我们必须等待并观望,就像已经由SSI公司的CEO和主席Kalpathi S. Suresh指出来的那样,"我发现所有这些都是渐进的.如果C#不存在,我们总能回到Java或C和C++.这些都不完全是新技术;它们在更大的意义上来说只是大公司制造的市场噱头.我们必须给他们时间安顿下来看看这些是不是真的对IT工业有什么影响."
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值