ASP如何应用主题(动态的!)

来源:互联网 发布:陈江华cba数据 编辑:程序博客网 时间:2024/05/22 06:00

做网站当然是越炫越好,当然ASP就避免不了要应用主题皮肤!

但是今天写东西的时候遇到了问题,不太清楚主题应用的具体问题!

这里贴出在程序中配置主题!动态应用主题正在研究中!后面会跟进更新中!

1.在应用程序的 Web.config 文件中,将 <pages> 元素设置为全局主题或页面主题的主题名称,如下面的示例所示:

 

<configuration>
    <system.web>
        <pages theme="ThemeName" />
    </system.web>
</configuration>               

                            

 *********************

如果应用程序主题与全局应用程序主题同名,则页面主题优先。

 

2.要将主题设置为样式表主题并作为本地控件设置的从属设置,应改为设置styleSheetTheme 特性:

<configuration>
    <system.web>
        <pages styleSheetTheme="Themename" />
    </system.web>
</configuration>

Web.config 文件中的主题设置会应用于该应用程序中的所有 ASP.NET 网页。Web.config 文件中的主题设置遵循常规的配置层次结构约定。例如,要仅对一部分页应用某主题,可以将这些页与它们自己的 Web.config 文件放在一个文件夹中,或者在根 Web.config 文件中创建一个<location> 元素以指定文件夹。有关详细信息,请参见配置特定文件和子目录

 

对单个页应用主题

 

<%@ Page Theme="ThemeName" %>或
<%@ Page StyleSheetTheme="ThemeName" %>对控件应用命名外观

 

主题中定义的外观应用于已应用该主题的应用程序或页中的所有控件实例。在某些情况下,您可能希望对单个控件应用一组特定属性。这可以通过创建命名外观(.skin 文件中设置了SkinID 属性的一项),然后按 ID 将它应用于各个控件来实现。

 

3.对控件应用命名外观

  • 设置控件的 SkinID 属性,如下面的示例所示:

    <asp:Calendar runat="server" ID="DatePicker" SkinID="SmallCalendar" />

如果页面主题不包括与 SkinID 属性匹配的控件外观,则控件使用该控件类型的默认外观。

 

 

 

补充1:

如何读取本页的Theme值:

System.Web.Configuration.PagesSection ps = (System.Web.Configuration.PagesSection)System.Configuration.ConfigurationManager.GetSection("system.web/pages");

this.TextBox1.Text=ps.Theme;

 

补充2:

一直在找动态改变全局主题的方法,但是都没找到!

自己做的方法是在母版(建议)或者在first page也可以吧!定义一个Session或者Cookie来存储主题!

然后每个页面在Page_PreInit中加载一下主题!

如果谁有更好更简便的方法可以互相学习一下!