提问人:Patrick McDonald 提问时间:6/18/2009 更新时间:6/18/2009 访问量:191
如何确定页面上是否启用了控件?
How do I determine if a control is enabled on a page?
问:
我在aspx页面上的面板中有一个TextBox。
如果未启用 textBox,我需要禁用 RequiredFieldValidator。
如果禁用了 Panel,并且 TextBox.Enabled 为 True,则在页面上禁用了文本框(这很好)。
那么,如果 Enabled 属性不可靠,我如何确定页面上的 TextBox 是否被禁用?
请注意,我需要一个通用的解决方案,因为可能有许多嵌套的容器级别,而容器并不总是面板。
答:
1赞
John Rasch
6/18/2009
#1
如何禁用容器控件?是否有原因在禁用其容器时无法禁用 and 控件?Textbox
RequiredFieldValidator
4赞
albertein
6/18/2009
#2
可以跨控件层次结构执行递归搜索,如果控件处于 Enabled 状态,则控件为 Enabled,并且其所有祖先也处于 Enabled。
bool IsControlEnabled (WebControl control)
{
if (!(control.Parent is WebControl))
return control.Enabled;
return control.Enabled &&
IsControlEnabled(control.Parent as WebControl);
}
评论