Могу ли я узнать, какая страница находится в ContentPlaceHolder моей главной страницы?
Все найденные мной Google обнаруживают, как использовать FindControl для доступа к элементу управления на главной странице с самой страницы.
Однако то, что я пытаюсь сделать, - это наоборот. На главной странице я хочу сослаться на любую дочернюю страницу в ContentPlaceHolder.
Почему ты спрашиваешь. Я хочу, чтобы главная страница знала, какая вкладка должна быть активной, в зависимости от содержательной страницы, которая в данный момент заполнена. Это позволяет мне не использовать каждую страницу для ссылки на главную страницу и позволяет им изменять активную вкладку; это должна быть работа главной страницы (если есть способ узнать, кого она включает).
Благодарю. Нет, пожалуйста.
1 ответ
Если вы хотите получить экземпляр исполняемого класса страницы, вы можете извлечь его из текущего HTTP-контекста:
var page = HttpContext.Current.CurrentHandler as Page;
Оттуда вы можете перемещаться по дереву управления страницей, вызывать FindControl()
, и так далее. Однако будьте осторожны с жизненным циклом страницы, поскольку события главной страницы имеют тенденцию срабатывать раньше, чем их события на странице.