Est-il possible de modifier la page maître d'une page de contenu en cliquant sur un bouton de cette page de contenu?Changement dynamique ASP.NET de la page maquette
Si pas pourquoi?
Est-il possible de modifier la page maître d'une page de contenu en cliquant sur un bouton de cette page de contenu?Changement dynamique ASP.NET de la page maquette
Si pas pourquoi?
Il est possible, vous devrez remplacer la méthode de onPreInit de votre classe codebehind comme si ...
protected override void OnPreInit(EventArgs e)
{
Page.MasterPageFile = "~/your/masterpage.master";
}
Donc, pour lier à un clic, vous pouvez utiliser un paramètre de chaîne de requête, à savoir
<a href="<%=Request.Url.ToString()%>?masterPage=alternative">Use
alternative master page</a>
Et puis dans le codebehind
protected override void OnPreInit(EventArgs e)
{
if(Request["masterPage"] == "alternative")
{ Page.MasterPageFile = "~/your/alternative/masterpage.master"; }
}
Vous pouvez définir le programme de master page Cependant, vous ne pouvez le faire que dans l'événement pré-init.
Vous pouvez avoir une base régulière, non-serveur <form>
, avec un champ <input>
caché. Lorsque le formulaire publie, vous vérifiez la valeur <input>
dans l'événement Pre_Init
et modifiez la page principale là.
Vous ne pouvez pas utiliser un formulaire côté serveur avec un événement bouton normal, car ils se déclenchent trop tard dans le cycle de vie de la page.
Je l'ai fait récemment où j'ai changé une image sur la page maître en fonction de la page qui était en cours de rendu. Je référencent contrôle
1) (imgPageSpecificTextImg sur le Masterpage)
2) Changé l'URL que le code pointait.
System.Web.UI.WebControls.Image imgText = (System.Web.UI.WebControls.Image)Master.FindControl("imgPageSpecificTextImg");
imgText.ImageUrl = "images/banner.jpg";
Mais comment peut être un bouton lié à cela? – anonymous