2009-12-06 61 views
1

ASP.NET複合控件的所有示例始終將子控件作爲CreateChildControls中的第一個操作進行清除。爲什麼是這樣?據我瞭解,這個方法總是通過EnsureChildControls調用,它設置一個標誌來表明它已經被調用,因此不會再次調用CreateChildControls。爲什麼在CreateChildControls中清除控件

是由基礎設施的其他方面調用的CreateChildControls?如果是的話在什麼情況下?

回答

0

沒有什麼可以阻止您在控件的OnInit期間創建控件並將它們添加到控件集合中。然後,當調用CreateChildControls時,已經存在控件。這聽起來可能聽起來很古怪,但是如果你在擴展一個控件,你知道當你的控件調用基本方法時(比如基礎構造函數或者base.OnLoad),那個基本控件在做什麼?

基本上,調用Controls.Clear()首先是很好的做法。

相關問題