2009-12-24 14 views

risposta

13

E 'possibile, si dovrà eseguire l'override del metodo OnPreInit della classe codebehind in questo modo ...

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

Quindi, per legare ad un clic, è possibile utilizzare un parametro di stringa di query, vale a dire

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

E poi nel codebehind

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

Si può avere un regolare, non server <form>, con un <input> campo nascosto. Quando il modulo viene inserito, si controlla il valore <input> nell'evento Pre_Init e si modifica la Pagina mastro.

Non è possibile utilizzare un modulo sul lato server con un evento pulsante normale, perché si attivano troppo tardi nel ciclo di vita della pagina.

0

L'ho fatto di recente dove ho modificato un'immagine nella pagina principale in base alla pagina che si stava eseguendo.

1) ho fatto riferimento al controllo (imgPageSpecificTextImg sul Masterpage)

2) Modificato l'URL che il codice stava indicando.

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