2009-06-17 94 views
2

我在aspx頁面的面板上有一個TextBox。如何確定頁面上是否啓用了控件?

如果textBox未啓用,我需要禁用RequiredFieldValidator。

如果面板被禁用,TextBox.Enabled爲True,那麼將文本框的頁面上被禁用(這是很好的。)

所以,我怎麼能找到,如果文本框的頁面,如果上禁用已啓用的屬性不可靠?

請注意,我需要一個通用的解決方案,因爲可能有許多嵌套級別的容器,並且容器並不總是面板。

回答

4

您可以跨控件層次結構進行遞歸搜索,如果啓用了控件並且所有祖先都啓用了,則您的控件爲「已啓用」。

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

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

如何禁用容器控件?是否有理由在禁用容器時禁止TextboxRequiredFieldValidator控件?

相關問題