ASP.NET динамическое изменение главной страницы


Можно ли изменить главную страницу страницы содержимого нажатием кнопки на этой странице содержимого?

Если нет, то почему?

4 6

4 ответа:

Возможно, вам придется переопределить метод OnPreInit вашего класса codebehind таким образом...

protected override void OnPreInit(EventArgs e)
{
    Page.MasterPageFile = "~/your/masterpage.master";
}

Таким образом, чтобы привязать это к клику, вы можете использовать параметр строки запроса, т. е.

<a href="<%=Request.Url.ToString()%>?masterPage=alternative">Use
alternative master page</a>

А затем в кодовом поле

protected override void OnPreInit(EventArgs e)
{
    if(Request["masterPage"] == "alternative")
    { Page.MasterPageFile = "~/your/alternative/masterpage.master"; }
}

Главную страницу можно задать программно, однако это можно сделать только в событии pre-init.

Http://odetocode.com/articles/450.aspx

У вас может быть обычный, не серверный <form>, со скрытым полем <input>. Когда форма публикуется, вы проверяете значение <input> в событии Pre_Init и меняете главную страницу.

Вы не можете использовать серверную форму с регулярным событием кнопки, потому что они срабатывают слишком поздно в жизненном цикле страницы.

Я сделал это недавно, когда я изменил изображение на главной странице, основываясь на странице, которая была отрисована.

1) я сослался на элемент управления (imgPageSpecificTextImg на главной странице)

2) изменил URL-адрес, на который указывал код.

            System.Web.UI.WebControls.Image imgText = (System.Web.UI.WebControls.Image)Master.FindControl("imgPageSpecificTextImg");
            imgText.ImageUrl = "images/banner.jpg";