Как изменить тему общего приложения ASP.NET динамично?

Вообразите приложение ASP.NET с несколькими темами определенным в нем. Как я могу изменить тему общего приложения (не только единственная страница) динамично. Я знаю, что это возможно через <pages Theme="Themename" /> в web.config. Но я хочу смочь изменить его динамично. Как shpuld я делаю это?

Заранее спасибо

5
задан Afshar Mohebbi 23 June 2010 в 06:46
поделиться

2 ответа

Вы можете сделать это на Page_PreInit , как описано здесь :

protected void Page_PreInit(object sender, EventArgs e)
{
    switch (Request.QueryString["theme"])
    {
        case "Blue":
            Page.Theme = "BlueTheme";
            break;
        case "Pink":
            Page.Theme = "PinkTheme";
            break;
    }
}
6
ответ дан 13 December 2019 в 22:01
поделиться

держите общую базовую страницу для всех ваших asp.net страниц и изменяйте свойство theme между любыми событиями после PreInit или до Page_Load в базовой странице. Это заставит каждую страницу применять эту тему. Как в этом примере, сделайте MyPage базовой страницей для всех ваших asp.net страниц.

public class MyPage : System.Web.UI.Page
{
    /// <summary>
    /// Initializes a new instance of the Page class.
    /// </summary>
    public Page()
    {
        this.Init += new EventHandler(this.Page_Init);
    }


    private void Page_Init(object sender, EventArgs e)
    {
        try
        {
            this.Theme = "YourTheme"; // It can also come from AppSettings.
        }
        catch
        {
            //handle the situation gracefully.
        }
    }
}

//in your asp.net page code-behind

public partial class contact : MyPage
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
}
1
ответ дан 13 December 2019 в 22:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: