今日看以面试题目,要给一个aspx页面上所有的TextBox置值,于是用以下代码。
foreach (Control aa in this.Controls)
{
if (aa.GetType().ToString() == "System.Web.UI.WebControls.TextBox")
{
((TextBox)aa).Text = “Tom”;
}
}
但是发生了问题,认不出来,于是把所有的控件输出来看了一下,包括:
System.Web.UI.LiteralControl
System.Web.UI.HtmlControls.HtmlHead
System.Web.UI.LiteralControl
System.Web.UI.HtmlControls.HtmlForm
System.Web.UI.LiteralControl
知道了,原来ASP.NET中的TextBox放在的是System.Web.UI.HtmlControls.HtmlForm控件中,于是将代码改写为
foreach (Control aa in this.Controls)
{
if (aa.GetType().ToString() == "System.Web.UI.HtmlControls.HtmlForm")
{
foreach (Control bb in aa.Controls)
{
if (bb.GetType().ToString() == "System.Web.UI.WebControls.TextBox")
{
((TextBox)bb).Text = "Tom";
}
}
}
}
搞定!