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