2009-06-17 12 views
2

私はaspxページのパネルにTextBoxを持っています。ページ上でコントロールが有効になっているかどうかを確認するにはどうすればよいですか?

textBoxが有効でない場合は、RequiredFieldValidatorを無効にする必要があります。

パネルが無効になっている、とTextBox.Enabledがtrueの場合、テキストボックスは(罰金である。)ページで無効になっている

のTextBoxがあればページで無効になっている場合、どのように私は見つけることができますEnabledプロパティは信頼できませんか?

多くの入れ子レベルのコンテナがあり、コンテナが必ずしもパネルではないため、汎用ソリューションが必要です。

答えて

4

コントロール階層全体で再帰的な検索ができます。コントロールが有効で、すべての祖先が有効になっている場合、コントロールは有効です。

bool IsControlEnabled (WebControl control) 
{ 
    if (!(control.Parent is WebControl)) 
     return control.Enabled; 

    return control.Enabled && 
     IsControlEnabled(control.Parent as WebControl); 
} 
1

コンテナコントロールをどのように無効にしますか?コンテナを無効にしたときにTextboxRequiredFieldValidatorコントロールを無効にできない理由はありますか?

関連する問題