给一个aspx页面上所有的TextBox置值

今日看以面试题目,要给一个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";
                    }
                }
            }
        }

 

搞定!

posted on 2010-10-27 15:17  kkmm  阅读(603)  评论(0编辑  收藏  举报