События - это просто многоадресные делегаты, поэтому обработчики событий будут вызываться в том порядке, в котором они были добавлены к событию.
Я бы посоветовал против этого, если честно. Даже если это работает, это довольно непрозрачно - у вас есть два отдельных обработчика событий в разных классах, обрабатывающих одно и то же событие без видимой связи между ними.
Лучше было бы передать событие родительскому элементуобработчик для обработки каждой из ваших унаследованных страниц перед выполнением собственной обработки. Таким образом, существует четкая связь, за кодом легко следовать, и вам не нужно полагаться на предположения относительно порядка событий.
РЕДАКТИРОВАТЬ для новых вопросов:
И как правильно одному организатору мероприятия общаться с другим?
Вы должны увидетьмой ответ в этого поста. Обработчики событий на самом деле не предназначены для связи друг с другом в ASP.Net (по крайней мере, для обработчиков событий жизненного цикла WebControl / page), так как нет гарантии на порядок запуска. Если у вас есть обработчики событий, полагающиеся на информацию, устанавливаемую в одноуровневых обработчиках событий, возможно, в вашем дизайне есть недостаток.
Например, базовая страница должна сообщать об успешном или неудачном подтверждении, производный класс нуждается всообщить об успехе или неудаче сохранения, чтобы его можно было записать в ходе аудита.
На самом деле есть несколько способов справиться с этим. Во-первых, просто сделайте вызов базового класса абстрактным или виртуальным методом, который можно переопределить на производных страницах. Во время обработки нажатия кнопки на вашей базовой странице выполните всю проверку, затем вызовите абстрактный метод «DoSave ()» ваших производных страниц и убедитесь, что он успешно выполнен.
Или напишите свой собственныйсобытия, и поднять их, когда это будет необходимо. Создайте событие «Проверка» в своем базовом классе и попросите ваши производные страницы подписаться на него, если им нужно будет ответить. Убедитесь, что ваш базовый класс повышает его, когда он завершит проверку. Создайте «сохраненное» событие в вашем базовом классе, обработчик события для него и попросите подписаться на него ваш базовый класс. Пусть ваши производные классы вызовут событие , когда они закончат сохранение. Теперь базовый класс может обрабатывать его регистрацию.
Я хотел бы добавить, что кажется, что вы загружаете очень много вещей в щелчки кнопок базового класса. Можете ли вы выполнить анонимный ID и проверку GET / POST при отображении страницы, и просто не отображать кнопки, если у них нет разрешения?