Зачем очищать элементы управления в CreateChildControls - PullRequest
1 голос
/ 06 декабря 2009

Все примеры составных элементов управления ASP.NET всегда очищают дочерние элементы управления как первое действие в CreateChildControls. Почему это? Насколько я понимаю, этот метод всегда вызывается через EnsureChildControls, который устанавливает флаг, указывающий, что он уже был вызван, и, следовательно, не вызывает CreateChildControls снова.

Вызывается ли CreateChildControls другими аспектами инфраструктуры? Если да, то при каких обстоятельствах?

1 Ответ

0 голосов
/ 06 декабря 2009

Ничто не мешает вам создавать элементы управления и добавлять их в коллекцию элементов управления во время включения элемента управления. Затем, когда вызывается CreateChildControls, уже присутствуют элементы управления. Это может показаться странным, но что если вы расширяете элемент управления, знаете ли вы, что делает этот базовый элемент управления, когда ваш элемент управления вызывает базовые методы (например, базовый конструктор или base.OnLoad)?

По сути, вызов Controls.Clear () сначала является хорошей практикой.

...