如何在动态母版页中应用主题?

时间:2011-06-11 12:15:16

标签: c# asp.net

是否覆盖了母版页中的PreInit?还是在MasterPage中可以继承PreInit?

2 个答案:

答案 0 :(得分:2)

如果您的所有页面都有基页类,则可以应用以下内容:

public partial class SiteMaster : System.Web.UI.MasterPage
{
    private string _theme = "Custom";
    public string Theme
    {
        get { return _theme; }
        set { _theme = value; }
    }
}

public class BasePage : System.Web.UI.Page
{
    protected void Page_PreInit(object  sender, EventArgs e)
    {
        var siteMaster = this.Master as SiteMaster;
        if (siteMaster != null && !string.IsNullOrEmpty(siteMaster.Theme))
        {
            Theme = siteMaster.Theme;
        }
    }
}

答案 1 :(得分:0)

您无法直接将ASP.NET主题应用于母版页。如果向@Master指令添加主题属性,该页面将在运行时引发错误。

但是,在这些情况下,主题应用于母版页:

如果在内容页面中定义了主题。母版页在内容页面的上下文中被解析,因此内容页面的主题也应用于母版页。