asp.net 怎样遍历页面的所有控件(table中的所有控件)? 我用

for (int i = 0; i < this.Page.Controls.Count; i++)
{
foreach (System.Web.UI.Control control in this.Page.Controls[i].Controls)
{
if (control is TextBox)
(control as TextBox).Text = "";
if (control is CheckBox)
(control as CheckBox).Checked = false;
if (control is RadioButtonList)
(control as RadioButtonList).SelectedIndex = -1;
}//foreach
}//for
我用这个遍历出来 this.Page.Controls.Count 只有5个(大部分都是HtmlMeta),而我的页面最少也有20多个控件一textbox居多。

你的写一个递归方法,这样只会查询出来Page容器里面的controls.

void EachControls(Control ctrl)
{
foreach(control in ctrl.Controls)
{
//判断是否包含子控件,
if(control.HasControls())
{
EachControls(control);
}

if(control is TextBox)
(control as TextBox).Text="";
.............
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-20
加个div 层,然后取出这个div层的控件进行处理追问

可以给个代码吗?具体怎么取出这个div层的控件

追答

这个还跟JS 有关了,没那么简单,我现在手头上的电脑刚好是新的,代码不在这儿。555

追问

问题我已经解决了!谢谢啊!
foreach (System.Web.UI.Control ctl in this.div3.Controls) {
if (ctl is System.Web.UI.WebControls.TextBox)
{
System.Web.UI.WebControls.TextBox tb = (System.Web.UI.WebControls.TextBox)ctl;
tb.Text = string.Empty;
}

}

本回答被提问者采纳
相似回答