1

ASP.NET 複合コントロールの例はすべて、CreateChildControls 内の最初のアクションとして常に子コントロールをクリアします。どうしてこれなの?私が理解しているように、このメソッドは常にEnsureChildControlsを介して呼び出され、すでに呼び出されていることを示すフラグを設定するため、CreateChildControlsを再度呼び出しません。

CreateChildControls は、インフラストラクチャの他の側面から呼び出されますか? もしそうなら、どのような状況で?

4

1 に答える 1

0

コントロールの OnInit 中に、コントロールを作成してコントロール コレクションに追加することを妨げるものは何もありません。その後、CreateChildControls が呼び出されると、既にコントロールが存在します。これは奇妙に聞こえるかもしれませんが、コントロールを拡張している場合、コントロールが基本メソッド (基本コンストラクターや base.OnLoad など) を呼び出すときに、その基本コントロールが何をしているのか知っていますか?

基本的に、まず Controls.Clear() を呼び出すことをお勧めします。

于 2009-12-06T11:29:47.687 に答える