我在aspx页面的Panel中有一个TextBox。
如果未启用textBox,我需要禁用RequiredFieldValidator。
如果Panel被禁用,TextBox.Enabled为True,则页面上的文本框被禁用(没问题。)
那么,如果启用属性不可靠,如何在页面上禁用TextBox?
请注意,我需要一个通用解决方案,因为可能有许多嵌套级别的容器,并且容器并不总是Panel。
答案 0 :(得分:4)
您可以跨控件层次结构进行递归搜索,如果启用了控件,则控件为Enabled,并且所有祖先也都已启用。
bool IsControlEnabled (WebControl control)
{
if (!(control.Parent is WebControl))
return control.Enabled;
return control.Enabled &&
IsControlEnabled(control.Parent as WebControl);
}
答案 1 :(得分:1)
您如何禁用容器控件?您是否有理由在禁用其容器时无法禁用Textbox
和RequiredFieldValidator
控件?