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事件的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值