Asp.net中的1页中有2个皮肤文件

时间:2011-05-07 00:52:47

标签: asp.net

我在<%@Page Theme="Theme1"%>

中有一个皮肤文件

我有两个按钮。一个用于Theme1.skin,另一个用于Theme2.skin。

如果按下按钮1,主题应更改为Theme1.skin

如果按下按钮2,则应将其更改为Theme2.skin

我在按钮1的点击事件中发现了这个Page.Theme="Theme1";

然后,我被告知只能用PreInit方法编写。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可以尝试在会话中设置主题名称,强制刷新页面并在page_init中加载

protected void Page_PreInit(object sender, EventArgs e)
{
        var themeName = Session["themeName"];
        if (thm != null)
        {
            Page.Theme = themeName.ToString() ;
        }
}

    protected void Button1_Click(object sender, EventArgs e)
    {
        Session["themeName"] = "Theme1";
        Server.Transfer(Request.FilePath);

    }

类似于Button2的Click,将会话对象设置为“Theme2”

答案 1 :(得分:1)

听听你被告知的事情。您需要在页面生命周期的PreInit中设置主题。之后就不可能了

This可能会让您找到解决问题的正确方向。评论也很好阅读。更准确地说是this评论。