如果标题不够清晰,请注意。 我的asp.Net表单中有大约20个Label和20个TextBox,并且所有这些都是错误的Visible属性。
我愿意将某些Visible属性更改为true,具体取决于给定的数字。我如何使用这些标签和文本框' FOR循环中的ID?
我已经将标签命名为:Label1,Label2,Label3等。
p.s:ParameterCount的值从1到20不等。
for (int i = 0; i <= parameterCount; i++)
{
Label[i].Visible = True; //I know it's wrong, but something like this
}
示例1:ParameterCount = 4
(Label1,Label2,Label3,Label4).Visible = True
示例2:参数计数= 2
(Label1,Label2).Visible = True
答案 0 :(得分:1)
Label l = this.FindControl($"Label{i}") as Label;
if (l != null)
{
// use the label `l` here
}
如果标签不是顶部元素,则必须在容器控件中找到它。
请参阅MSDN上的完整示例:How to: Access Server Controls by ID
答案 1 :(得分:1)
只需将您的标签放在一个数组中:
Label[] arr = new Label[] { label1, label5, label10, lable13, label14 };
for (int i = 0; i < ParameterCount; ++i)
arr[i].Visible = true;
前提是ParameterCount <= arr.Length
答案 2 :(得分:0)
您可以将这些标签或文本框放在asp:Panel
:
<asp:Panel ID="myPanel" runat="server">
... your textboxes and labels come here
</asp:Panel>
然后只需切换此面板的可见性:
myPanel.Visible = true; // or false if you wish