Могу ли я узнать, какая страница находится в ContentPlaceHolder моей главной страницы?

Все найденные мной Google обнаруживают, как использовать FindControl для доступа к элементу управления на главной странице с самой страницы.

Однако то, что я пытаюсь сделать, - это наоборот. На главной странице я хочу сослаться на любую дочернюю страницу в ContentPlaceHolder.

Почему ты спрашиваешь. Я хочу, чтобы главная страница знала, какая вкладка должна быть активной, в зависимости от содержательной страницы, которая в данный момент заполнена. Это позволяет мне не использовать каждую страницу для ссылки на главную страницу и позволяет им изменять активную вкладку; это должна быть работа главной страницы (если есть способ узнать, кого она включает).

Благодарю. Нет, пожалуйста.

1 ответ

Решение

Если вы хотите получить экземпляр исполняемого класса страницы, вы можете извлечь его из текущего HTTP-контекста:

var page = HttpContext.Current.CurrentHandler as Page;

Оттуда вы можете перемещаться по дереву управления страницей, вызывать FindControl(), и так далее. Однако будьте осторожны с жизненным циклом страницы, поскольку события главной страницы имеют тенденцию срабатывать раньше, чем их события на странице.

Другие вопросы по тегам