我想知道是否可以在C#for ASP.NET中按名称查找文本框。
例如,for
在这个方法中:
for (int i = 1; i <= counter; i++)
{
("txtName" + i).Visible = true;
}
您可以使用FindControl按ID搜索控件。请记住,FindControl只能在容器内工作。在您的情况下,如果您的控件位于容器中,请在该容器中执行FindControl。
此链接为您提供有关https://msdn.microsoft.com/en-us/library/y81z8326%28v=vs.140%29.aspx主题的更多详细信息
假设您使用的是默认模板,则有一个Master页面,其中包含MainContent或body容器。您需要获得对它的引用,然后在其中搜索控件。
var container = Master.FindControl("ContentPlaceHolder1");
var control = container.FindControl("txtNaam1");
如果控件位于不同的容器中,则需要获取对该容器的引用并在其中进行搜索。
我认为Page.FindControl
方法就是你想要的。
代码背后:
(this.FindControl("txtName" + i) as TextBox).Visible = true;
这个帖子很旧,但我也遇到过类似的问题。对我来说,文本框位于更新面板中。所以我使用下面的代码在aspx.cs中找到它。
var txtBox = updPanelPage.FindControl(btn.CommandArgument) as TextBox;