Проверка на предмет того, был ли контент ContentPlaceHolder переопределен дочерней страницей?
-
22-07-2019 - |
Вопрос
В настоящее время я переношу приложение .net 1.1 на .net 3.5.
В приложении .net 1.1 есть несколько page + usercontrol, которые я бы хотел перенести на masterpages.
Моя проблема заключается в попытке программного тестирования, чтобы увидеть, было ли содержимое contentplaceholders главной страницы переопределено дочерней страницей.
- Возможно ли это?
- У кого-нибудь есть образцы или ссылки, на которые я мог бы взглянуть?
Заранее благодарю.
Решение
Страница может взаимодействовать с главной страницей, но не наоборот, поскольку содержимое в contentplaceholder не принадлежит главной странице.Самый быстрый способ настройки страницы, "регистрирующей" себя на главной странице, - это объявить класс, который наследуется от <url> MasterPage, и предоставить функциональность связи в этом классе.
общедоступный абстрактный класс MyMaster :System.Web.UI.MasterPage { общедоступный MyMaster() { }
public abstract void TellMeSomethingAboutTheContent(SomeArgs args);
}
Затем на вашей странице, использующей мастер, вы можете сделать что-то вроде:
protected void Page_Load(object sender, EventArgs e)
{
MyMaster master = Page.Master as MyMaster;
if (master == null)
return;
master.TellMeSomethingAboutTheContent(args);
}
Предполагая, конечно, что у вас есть класс SomeArgs, который содержит данные, о которых вы хотите, чтобы главная страница знала.