2009-12-06 9 views
1

Tous les exemples de contrôles composites ASP.NET suppriment toujours les contrôles enfants comme première action dans CreateChildControls. Pourquoi est-ce? Si je comprends bien, cette méthode est toujours appelée via EnsureChildControls qui définit un indicateur pour indiquer qu'il a déjà été appelé et n'appelle donc plus CreateChildControls.Pourquoi supprimer les contrôles dans CreateChildControls

CreateChildControls est-il appelé par d'autres aspects de l'infrastructure? Si oui, dans quelles circonstances?

Répondre

0

Rien ne vous empêche de créer des contrôles et de les ajouter à la collection de contrôles lors de l'OnInit du contrôle. Ensuite, lorsque CreateChildControls est appelé, des contrôles sont déjà présents. Cela peut sembler farfelu, mais que se passe-t-il si vous étendez un contrôle, savez-vous ce que fait ce contrôle de base lorsque votre contrôle appelle les méthodes de base (comme le constructeur de base, ou le base.OnLoad)?

Fondamentalement, appeler Controls.Clear() en premier est une bonne pratique.