是否有一种通过id(在任何嵌套容器中)在ASP.NET中查找控件的简单方法?除了遍历整个控件树之外。
像这样的例子:
TextBox tb = new TextBox() { ID = "textboxId"};
panel3.Controls.Add(tb);
在其他方法/类中:
TextBox nameTextbox = MethodToFindControl("textboxId") as TextBox;
答案 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)
这种方法比遍历页面的所有控件和子控件更容易。