2009-10-24 3 views
0

Я делаю пользовательский контроль.Как вычислить, если другие элементы управления построены до OnInit

В основном, я ищу событие OnPreInit в пользовательских элементах управления. Я в основном должен знать, что все элементы управления, которые будут загружены типа MyCustomControl, будут построены или нет.

Хорошо, поэтому в основном мне нужно знать в конструкторе, если текущий экземпляр будет сконструирован, будет последним.

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

Я думал о том, чтобы переопределить AddParsedObject. Но если экземпляр моего пользовательского элемента управления не содержит никаких элементов управления, будет ли он вызван?

+0

... Я должен спросить, почему? –

+0

Хорошо, я делаю альтернативный класс общения для веб-сайтов. Вместо того, чтобы выводить из UserControl в классе webpart, вы получаете свой класс. Ну, все намерение состоит в том, чтобы иметь возможность связи между веб-сайтами более мощным способом и до Page_Load. Предпочтительно даже в Page_Init .. Поэтому я включил событие для «AllWebPartsInitialized», чтобы экземпляры знали, что безопасно полагаться на другие существующие веб-сайты. – Earlz

ответ

2

К сожалению, подход, который вы описываете, является «нетривиальным», , Это означает, что это может быть не технически невозможно, но так сложно сделать правильно и имеет так много негативов/минусов, что вам будет лучше отступить и проанализировать большую проблему для другого дизайна. Возможно, если вы повторно разместите формулировку конечной цели, которую вы пытаетесь выполнить, мы сможем помочь вам найти подходящий подход.

0

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

+0

Ну, я попытался подключиться к странице.OnPreInit. Но в конструкторе настраиваемого элемента для страницы задано значение null, иначе работа с рекурсивным ходом тоже будет работать – Earlz