日期:2014-05-20  浏览次数:20520 次

(抢分了)用C#编程遍历页面中所有的TextBox,并将Text设置为"我来抢分"
.....

------解决方案--------------------
<%@ Page Language= "C# "%>

<script runat=server>
void GetChildControl(Control ParentControl)
{
if (ParentControl.HasControls())
{
foreach (Control ctl in ParentControl.Controls)
{
if(ctl.GetType().ToString() == "System.Web.UI.WebControls.TextBox ") ((System.Web.UI.WebControls.TextBox)ctl).Text= "分 ";

GetChildControl(ctl);
}
}
}
protected void Page_Load(object sender, EventArgs e)
{
GetChildControl(Page);
}

</script>
<form runat=server>
<asp:textbox id=a runat=server/>
<asp:textbox id=b runat=server/>
<asp:textbox id=c runat=server/>
<asp:Panel id=cc runat=server>
<asp:textbox id=d runat=server/>
</asp:Panel>

</form>

------解决方案--------------------
递归是得到全部的TextBox,你的代码
foreach (Control c in Page.Controls)
{
Response.Write(c.ToString() + " <br> ");
}
得到的只是Page下的子控件,并不能得到textBox,注意:控件是树型结构的,TextBox是form的子控件,不是Page的子控件。

使用你的方法需要这样

foreach (Control c in form1.Controls)
{
Response.Write(c.ToString() + " <br> ");
}