Проверка на предмет того, был ли контент ContentPlaceHolder переопределен дочерней страницей?

StackOverflow https://stackoverflow.com/questions/1041349

Вопрос

В настоящее время я переношу приложение .net 1.1 на .net 3.5.

В приложении .net 1.1 есть несколько page + usercontrol, которые я бы хотел перенести на masterpages.

Моя проблема заключается в попытке программного тестирования, чтобы увидеть, было ли содержимое contentplaceholders главной страницы переопределено дочерней страницей.

  1. Возможно ли это?
  2. У кого-нибудь есть образцы или ссылки, на которые я мог бы взглянуть?

Заранее благодарю.

Это было полезно?

Решение

Страница может взаимодействовать с главной страницей, но не наоборот, поскольку содержимое в 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, который содержит данные, о которых вы хотите, чтобы главная страница знала.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top