可以通过asp.net webforms页面控件枚举吗?

可以通过asp.net webforms页面控件枚举吗?,asp.net,webforms,Asp.net,Webforms,我试图枚举一个页面的所有控件,但我只能找到Page.FindControl(string),而.Controls属性没有我在页面上拥有的控件。任何人都知道如何枚举web窗体页的所有控件。controls属性只包含当前控件的直接子级。如果你想遍历页面上的所有控件,你必须遍历页面的子控件,然后递归遍历它们的子控件,然后遍历它们的子控件等等。递归方法是实现这一点最直接的方法。控件属性仅包含当前控件的直接子级。如果你想遍历页面上的所有控件,你必须遍历页面的子控件,然后递归遍历它们的子控件,然后遍历它们的

我试图枚举一个页面的所有控件,但我只能找到
Page.FindControl(string)
,而.Controls属性没有我在页面上拥有的控件。任何人都知道如何枚举web窗体页的所有控件。controls属性只包含当前控件的直接子级。如果你想遍历页面上的所有控件,你必须遍历页面的子控件,然后递归遍历它们的子控件,然后遍历它们的子控件等等。递归方法是实现这一点最直接的方法。

控件属性仅包含当前控件的直接子级。如果你想遍历页面上的所有控件,你必须遍历页面的子控件,然后递归遍历它们的子控件,然后遍历它们的子控件等等。递归方法是实现这一点最直接的方法。

下面应该为您列举所有子控件

IEnumerable<Control> GetAllChildControls(ControlCollection controls)
{
  foreach(Control c in controls)
  {
    yield return c;

    if(c.Controls.Count > 0)
    {
      foreach(Control control in GetAllChildControls(c.Controls))
      {
        yield return control;
      }
    }
  }
}
IEnumerable GetAllChildControls(ControlCollection控件)
{
foreach(控件中的控件c)
{
收益率c;
如果(c.Controls.Count>0)
{
foreach(GetAllChildControls中的控件(c.Controls))
{
收益率控制;
}
}
}
}

下面应该为您列举所有子控件

IEnumerable<Control> GetAllChildControls(ControlCollection controls)
{
  foreach(Control c in controls)
  {
    yield return c;

    if(c.Controls.Count > 0)
    {
      foreach(Control control in GetAllChildControls(c.Controls))
      {
        yield return control;
      }
    }
  }
}
IEnumerable GetAllChildControls(ControlCollection控件)
{
foreach(控件中的控件c)
{
收益率c;
如果(c.Controls.Count>0)
{
foreach(GetAllChildControls中的控件(c.Controls))
{
收益率控制;
}
}
}
}