如何通过id在页面上找到控件

时间:2010-12-09 00:11:27

标签: c# asp.net

是否有一种通过id(在任何嵌套容器中)在ASP.NET中查找控件的简单方法?除了遍历整个控件树之外。

像这样的例子:

TextBox tb = new TextBox() { ID = "textboxId"};
panel3.Controls.Add(tb);

在其他方法/类中:

 TextBox nameTextbox = MethodToFindControl("textboxId") as TextBox;

3 个答案:

答案 0 :(得分:5)

如果我理解你的问题,你可以使用FindControl方法,如下所示:

TextBox nameTextbox =(TextBox)panel3.FindControl(“textboxId”);

答案 1 :(得分:3)

否...你必须遍历所有控制树,直到你找到控件然后你停止遍历,你的方法(MethodToFindControl)应该是一个带有两个参数的递归方法:根容器(大多数时候它是页面) )和要查找的控件的id。

答案 2 :(得分:1)

如果您无法使用findcontrol声明相应的td / panel作为服务器控件找到控件,那么您应该能够在td或panel元素中轻松找到所需的控件。

DirectCast(tdMultiCnstrTypCode.FindControl("BBIMultiConsCode" & cnt + 1), DropDownList)

这种方法比遍历页面的所有控件和子控件更容易。