жизненный цикл страницы / управления - PullRequest
1 голос
/ 08 апреля 2011

У меня usercontrol x на странице, внутри usercontol x это usercontrol z.Мне нужно что-то сделать для usercontrol z после того, как событие сработало в usercontrol x.Я понимаю, что это очень общий характер, но он просто излагает простую предпосылку для моей проблемы.

Существует ли простой способ получить список всех событий, которые запускаются в жизненном цикле страницы, независимо от того, подписан я на них или нет, чтобы выяснить, какие события происходят между событием A на странице и событием B в элементе управления z?Я думаю, что будет что-то подобное, когда включена трассировка страниц, но я не вижу никаких событий в списке.Я представляю, что это может быть что-то, что конвейер может сгенерировать, может быть, я мог бы использовать отражение, чтобы получить список?

Мне было трудно вообще найти эту тему, возможно, я использую неверные ключевые слова ... Я нашел старый проект на codeproject.com, но я надеялся, что будет что-то более элегантное, доступное длясейчас.

* Чтобы уточнить, я хочу создать список после обратной передачи каждого потенциального события (подписанного или нет), в порядке запуска от init до выгрузки всех элементов управления на странице.

ЭТО ПОЧТА: Отслеживание всех событий в VB.NET приближает меня, однако это списки для каждого элемента управления, а не в хронологическом порядке.

Ответы [ 3 ]

1 голос
/ 08 апреля 2011

Включить трассировку с <% @ Page Trace = "true"%> в атрибуте страницы. это должно отображать события жизненного цикла в последовательности.

0 голосов
/ 08 апреля 2011

Обзор жизненного цикла страницы ASP.NET в MSDN содержит список всех событий, вызванных Page от PreInit до Unload. Большинство из этих событий запускаются в любом классе, который также наследуется от System.Web.UI.Control.


Обновление

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

0 голосов
/ 08 апреля 2011

Что ж, если вы просто хотите посмотреть, что вообще происходит, и в каком порядке они запускаются, прочитайте эту статью .Что касается их получения ... ну, это зависит от того, что вы имеете в виду.Это может быть так же просто, как получить их через отражение:

EventInfo[] events = this.GetType().GetEvents();
...