Как правильно использовать EnsureChildControls ()? - PullRequest
10 голосов
/ 21 сентября 2010

Чаще всего я использую его, когда я получаю доступ к свойству составного элемента управления, который зависит от дочернего элемента управления. Но я также добавил его в OnInit элемента управления, чтобы убедиться, что скрытое поле было добавлено правильно. Минуту назад я вызвал его в RenderControl, потому что у меня была проблема с рендерингом экстендера календаря, и он это исправил. Я начинаю немного запутываться, когда мне нужно и когда мне не нужно вызывать EnsureChildControls и когда мне нужно это вызывать. Любые указатели приветствуются. Спасибо!

Ответы [ 2 ]

6 голосов
/ 21 сентября 2010

EnsureChildControls запускает CreateChildControl, если он еще не запущен ранее Это должно быть сделано только один раз в жизненном цикле страницы. Я называю это безусловно в OnInit / Page_Init и больше нигде. Преимущество этого места в том, что элементы управления создаются до того, как ASP.NET загрузит ViewState. Если вы используете ViewState или ControlState, необходимо создать дочерние элементы управления так рано.

0 голосов
/ 21 сентября 2010

Метод EnsureChildControls гарантирует, что дочерние элементы управления созданы до доступа к ним.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...