asp.net如何设置全局主题皮肤
时间:2010-09-07 来源:海滨小城
(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、编译通过,看看效果如何。