首页 新闻 会员 周边

ASP.NET 遍历指定页面中所有的控件

0
悬赏园豆:100 [待解决问题]

网站分前台和后台,现在知道了前后台页面的名称,如何遍历指定页面的所有控件的名称呢?

 

/// <summary>
/// 有效遍历asp.net页面所有控件的方法
/// </summary>
/// <param name="parent">this</param>
void IterateThroughChildren(Control parent)
{
foreach (Control c in parent.Controls)
{
//Label1.Text += c.ID + "|";//示例
if (c.Controls.Count > 0) // 判断该控件是否有下属控件。
{
IterateThroughChildren(c);
//递归,访问该控件的下属控件集。

}
}
}

 

这个方法只能遍历当前页的控件,所以我想问问指定某一个页面的遍历,而且不要用一个控件一个控件的比对,例如是TextBox,Label等,这种效率太低,而且我的控件很多!

mutounannan的主页 mutounannan | 初学一级 | 园豆:100
提问于:2011-01-20 17:40
< >
分享
所有回答(6)
0

new一个指定页面的实例,传到方法里可否?

manji | 园豆:633 (小虾三级) | 2011-01-20 17:53
0

还有人有这种需求?

顾晓北 | 园豆:10844 (专家六级) | 2011-01-20 17:58
0

你为什么从后台找前台所有的控件啊,this.Control.findcontrol("Id")这样就可以直接找到这个控件啊。

rains | 园豆:860 (小虾三级) | 2011-01-23 14:35
0

你干嘛要遍历所有的控件啊?那样效率自然很低啊,你就想要什么控件就找什么控件呗。一般的控件都有它的ID 和name 的啊

你要是在后台查找前台的某个控件这样就可以了啊:Request.Params["控件name"];

dream梦false | 园豆:316 (菜鸟二级) | 2011-01-23 15:31
0
for (int j =0; j <this.Controls.Count; j++)
{
foreach (object o in Page.Controls[j].Controls)
{
if (o is TextBox)
{
TextBox txt
= (System.Web.UI.WebControls.TextBox)o;
txt.Text
= String.Empty;
}
}
}
.NET快速开发框架 | 园豆:946 (小虾三级) | 2011-03-17 17:27
0

你好,请问这个问题你是如何解决的?我遇到同样的问题,要在一个类中获取另一个页面的控件ID集合

閒雲 | 园豆:193 (初学一级) | 2015-04-30 16:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册