页面可以被看成各种控件组成的一个集合。在页面被初始化和加载过程中,可以遍历这些控件,找到特定的控件,或者改变某些控件的属性。
页面Controls
/ | \ //foreach(Control c in Controls)
控件1 控件2 控件3 // 只判断控件1、2、3属于页面Controls
/ \ //而未涉及到下属子控件
子控件1 子控件2
为了真正做到遍历所有控件集,可以用递归的方法来实现:
代码如下:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
////没有子递归的
//foreach (System.Web.UI.Control c in this.Page.Controls)
//{
// this.result.Text += c.ToString() + "-" + c.ID + "<br>";
//}
ThroughChildren(this.Page);
}
public void ThroughChildren(System.Web.UI.Control parent)
{
foreach (System.Web.UI.Control c in parent.Controls)
{
this.result.Text += "<Li>" + c.ToString()+"</Li>";
if (c.Controls.Count > 0) //
{
this.result.Text += "<ul>";
ThroughChildren(c);
this.result.Text += "</ul>";
}
}
}
}