Tester pour voir si le contenu de ContentPlaceHolder a été remplacé par une page enfant?
-
22-07-2019 - |
Question
Je suis en train de migrer une application .net 1.1 vers .net 3.5.
L’application .net 1.1 contient un certain nombre de pages + contrôles utilisateur que je voudrais migrer vers des pages maîtres.
Mon problème est d’essayer de tester progressivement pour voir si le contenu du contenu contentplaceholders de la page principale a été remplacé par une page enfant.
- Est-ce possible?
- Quelqu'un a-t-il des échantillons ou des références que je pourrais consulter?
Merci d'avance.
La solution
Une page peut communiquer avec la page maître, mais pas l'inverse, car le contenu du contentplaceholder n'appartient pas à la page maître. Le moyen le plus rapide de configurer une page " enregistrement " lui-même à la page maître consiste à déclarer une classe qui hérite du .NET MasterPage et à exposer les fonctionnalités de communication de cette classe.
classe abstraite publique MyMaster: System.Web.UI.MasterPage { public MyMaster () {}
public abstract void TellMeSomethingAboutTheContent(SomeArgs args);
}
Ensuite, dans votre page utilisant le maître, vous pouvez faire quelque chose comme:
protected void Page_Load(object sender, EventArgs e)
{
MyMaster master = Page.Master as MyMaster;
if (master == null)
return;
master.TellMeSomethingAboutTheContent(args);
}
En supposant bien sûr que vous ayez une classe SomeArgs contenant les données que vous souhaitez que la page maître connaisse.