日期:2014-05-17  浏览次数:20341 次

如何将一个Panel下的Webcontrol 的Enabled全部置为 false ?
Dim Ctl As System.Web.UI.WebControls.WebControl
For Each Ctl In PnlContent.Controls
      Ctl.Enabled = False
Next
-----------------------------------
由于System.Web.UI.Control的子类WebControl都有Enabled属性,但其它子类没有这个Enabled属性,运行时会出现这样的错误提示:
无法将类型为“System.Web.UI.LiteralControl”的对象强制转换为类型“System.Web.UI.WebControls.WebControl”。

请问,上面的代码如何修改,能枚举Panel下的所有WebControl,并设置Enabled属性?

------解决方案--------------------
Dim Ctl As System.Web.UI.WebControls.WebControl
For Each Ctl In PnlContent.Controls
      Ctl.Enabled = False
Next

这个多加个判断,判断Ctl是不是属于WebControl这个控件,是就Ctl.Enabled = False
否则跳过。
------解决方案--------------------
不必每个控件设置!!!
直接对Panel的属性设为false,它内部所有控件也自然为false.