海滨小城

.net研究

导航

asp.net如何设置全局主题皮肤

 

 

(2010-02-20 14:50:51)
标签:

全局

主题

皮肤

教育

分类:asp.net

这两天学习了下asp.net如何设置皮肤,一点心得,记录如下:

用以下方法可以动态修改全局主题

1、新建网站WebSite2

2、新建外观文件SkinFile、SkinFile2

   SkinFile内容:<asp:Button runat="server" style="color:red;background-color:gray" SkinID="mybutton"/>

   SkinFile2内容:<asp:Button runat="server" style="color:blue;background-color:red" SkinID="mybutton"/>

3、新建Web.config

   在<system.web>里添加一行<pages theme="SkinFile" />

4、新建类Class1.cs

   public class Class1:System.Web.UI.Page//一定要继承Page

   {
       public Class1()
       {
          // TODO: 在此处添加构造函数逻辑
       }
       protected void Page_PreInit()
       {
          Page.Theme = Session["skin"].ToString();
       }
   }

5、新建Global.asax,添加两行代码

    void Session_Start(object sender, EventArgs e)
    {
        // 在新会话启动时运行的代码
        Session["skin"] = "SkinFile";
    }

    void Session_End(object sender, EventArgs e)
    {
        // 在会话结束时运行的代码。
        // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
        // InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer
        // 或 SQLServer,则不会引发该事件。
        Session["skin"] = "SkinFile"; 

   }

6、在Default.aspx中添加一行

    <asp:Button ID="Button1" runat="server" Text="主题一" SkinID="mybutton" OnClick="Button1_Click" />
        <asp:Button ID="Button2" runat="server" Text="主题二" SkinID="mybutton" OnClick="Button2_Click" />

7、为Button1和Button2添加事件

    protected void Button1_Click(object sender, EventArgs e)
    {
        Session["skin"] = "SkinFile";
        Response.Redirect("Default.aspx");
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        Session["skin"] = "SkinFile2";
        Response.Redirect("Default.aspx");
    }

8、Default.aspx一定要继承Class1

    public partial class _Default : Class1

9、再生成一个其他页面,比如Default2.aspx(一定要继承Class1),加一个按钮和一个链接,如

    <asp:Button ID="Button1" runat="server" Text="Button" SkinID="mybutton" />

    <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/Default2.aspx">看其他页面主题是否改变</asp:HyperLink>

10、编译通过,看看效果如何。

 

posted on 2010-09-07 00:37  海滨小城  阅读(992)  评论(0编辑  收藏  举报