foreach(Label l in Controls) // setting all labels' s visbility on page to true
l.Visible =true;
但是在跑步时,我收到了以下错误
Unable to cast object of type 'ASP.admin_master' to type 'System.Web.UI.WebControls.Label'.
答案 0 :(得分:5)
如果其中一个控件不是标签类型,您将收到该错误。
你可以尝试:
foreach(Label l in Controls.OfType<Label>())
{
l.Visible = true;
}
答案 1 :(得分:3)
如果您希望页面上的所有标签设置可见,则需要递归功能。
private void SetVisibility<T>(Control parent, bool isVisible)
{
foreach (Control ctrl in parent.Controls)
{
if(ctrl is T)
ctrl.Visible = isVisible;
SetVisibility<T>(ctrl, isVisible);
}
}
用法:
SetVisibility<Label>(Page, true);
答案 2 :(得分:0)
检查当前“l”是否具有所需的目的地类型:
foreach(control l in Controls) {
if(l is System.Web.UI.WebControls.Label)
l.Visible = true;
}
答案 3 :(得分:0)
foreach(Control l in Controls)
if (l is Label) l.Visible =true;
如果您想要所有层次结构:
public static void SetAllControls( Type t, Control parent /* can be Page */)
{
foreach (Control c in parent.Controls)
{
if (c.GetType() == t) c.Visible=true;
if (c.HasControls()) GetAllControls( t, c);
}
}
SetAllControls( typeof(Label), this);
答案 4 :(得分:0)
public void Search(Control control)
{
foreach (Control c in control.Controls)
{
if (c.Controls.Count > 0)
Search(c);
if (c is Label)
c.Visible = false;
}
}
和
Search(this.Page);