2009-12-24 12 views

cevap

13

Mümkün, sen

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

Yani bir tıklama için bu bağlanma ... öylesine gibi codebehind sınıfının OnPreInit yöntemi geçersiz gerekecek, bir sorgu dizesi parametresi kullanabilirsiniz, yani Sen ana sayfa programını ayarlayabilirsiniz

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

codebehind içinde

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

sonra Bununla birlikte, matematiği, ancak bunu ön-başlama olayında yapabilirsiniz.

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

+0

Bununla ilgili bir düğme nasıl olabilir? – anonymous

2

Bir gizli <input> alanıyla düzenli olmayan sunucu <form>, sahip olabilir. Form gönderdiğinde, Pre_Init etkinliğinde <input> değerini denetleyin ve Ana Sayfa'yı burada değiştirin.

Sayfa yaşam döngüsünde çok geç yangın yaptıkları için, bir sunucu tarafı formunu normal düğme olayıyla kullanamazsınız.

0

Son zamanlarda, ana sayfada görüntülenen sayfayı temel alarak değiştirdiğimi yaptım.

1) Ben

2) kod işaret edildi URL'yi değiştirdi kontrolünü Masterpage üzerinde (imgPageSpecificTextImg) başvurulan.

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