我想知道是否可以在C#for ASP.NET中按名称查找文本框。
例如此方法中的for
:
for (int i = 1; i <= counter; i++)
{
("txtName" + i).Visible = true;
}
答案 0 :(得分:3)
您可以使用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");
如果控件位于不同的容器中,则需要获取对该容器的引用并在其中进行搜索。
答案 1 :(得分:0)
我认为Page.FindControl
方法就是你想要的。
答案 2 :(得分:0)
:
(this.FindControl("txtName" + i) as TextBox).Visible = true;
答案 3 :(得分:0)
该线程很旧,但是我也遇到过类似的问题。 对我而言,该文本框位于更新面板中。所以我用下面的代码在aspx.cs中找到它。
var txtBox = updPanelPage.FindControl(btn.CommandArgument) as TextBox;