2011-03-07 10 views
0

私は、現時点ではいくつかのカスタムCompositeControlsのためのバリデータで周りの毛羽立ちだ、とサーバー側の検証が働いて得るために、私は次のことを実行する必要があります。EnsureChildControls()はOnLoadでコードの臭いが少しありますか?

protected override void OnLoad(EventArgs e) 
{ 
    EnsureChildControls(); 
    base.OnLoad(e); 
} 

私は完全にASPを把握していませんでした.NETのページライフサイクルはまだありません。これが一般的なASPの匂いかどうか、それとも問題ないのでしょうか?

(私のバリデータを動的にCreateChildControls()に追加されたので、私はEnsureChildControls()を呼び出す必要な理由はあるが、私が実際にどのバリデータを作成しました前に、サーバー側の検証が故にCreateChildControls()が自然に呼び出される前に行われ、そうです。だから、私が存在するためにそれらを強制的にEnsureChildControls()を呼んでいる。)

+1

Asp.netは、コードのにおいです:) MVC – luckyluke

+0

ハを使用し、私はこの:-)たいすべてのASP MVCでとても素敵プレーしない、SharePoint 2007の内部に収まるように持っています。 – ngm

答えて

0

は、バリデータを追加し、あなたのルーチンは、私はあなたがPage_Initと基本的にLoadViewState

bool _doCreateValidators=false; 
void OnPageInit(sender,args){ 
    if(_doCreateValidators){ 
     CreateValidators(); 
    } 
} 

protected override void LoadViewState(StateBag savedState){ 
     CreateValidators(); 
     _doCreateValidators = false; 
     base.LoadViewState(savedState); 
} 
にこれを移動することをお勧め

CrateValidators()であると言います

関連する問題