Testando para ver se o conteúdo ContentPlaceHolder foi substituído por uma página filho?
-
22-07-2019 - |
Pergunta
Atualmente estou migrando um 1.1 aplicativo .net para .net 3.5.
O aplicativo .NET 1.1 tem um número de número de página + UserControl do que eu gostaria migraram para masterpages.
Meu problema está tentando testar progmatically para ver se o conteúdo ContentPlaceHolders do masterpage foi substituído por uma página filha.
- É possível?
- Alguém tem amostras ou referências que eu poderia tomar uma olhada?
Obrigado antecipadamente.
Solução
A página pode se comunicar com a página mestra, mas não vice-versa, desde o conteúdo no contentplaceholder não pertence à página mestre. A maneira mais rápida de criar uma página de "registrar"-se à página mestra é declarar uma classe que herda da NET MasterPage e expor a funcionalidade de comunicação nessa classe.
classe MyMaster abstrato público: System.Web.UI.MasterPage { MyMaster pública () {}
public abstract void TellMeSomethingAboutTheContent(SomeArgs args);
}
Então, em sua página que usa o mestre que você pode fazer algo como:
protected void Page_Load(object sender, EventArgs e)
{
MyMaster master = Page.Master as MyMaster;
if (master == null)
return;
master.TellMeSomethingAboutTheContent(args);
}
Supondo, claro, que você tem uma classe SomeArgs que contém os dados que você quer a página principal de conhecer.