在服务器端代码中使用for循环,通过在标签中动态创建名称来循环使用标签

本文关键字:标签 循环 动态 创建 服务器端 代码 for | 更新日期: 2023-09-27 17:57:42

我在一个有asp标签列表的网站上工作。我使用javscript代码来获取每个框的名称,这样我就可以修改其中的文本。我使用了一个类似于此的for循环,我开始好奇是否有一种方法可以类似地调用所有标签,这样你就可以把它们放在一个循环中,并在所有标签中循环。服务器端代码中的类似内容:

asp代码:

<asp:Label runat="server" ID="lblWorld1" Text="" />
<asp:Label runat="server" ID="lblWorld2" Text="" />
<asp:Label runat="server" ID="lblWorld3" Text="" />
<asp:Label runat="server" ID="lblWorld4" Text="" />
<asp:Label runat="server" ID="lblWorld5" Text="" />

c#代码

for(int c = 1; c <= 5 ; c++)
{
  var label = "lblWorld" + c.toString();
  label.Text = "Hello World!";
}

但是,在服务器端代码中,这是不起作用的。有没有一种方法可以生成for循环,并使用动态系统获取标签的名称。

在服务器端代码中使用for循环,通过在标签中动态创建名称来循环使用标签

  1. 将所有标签放入某个容器中,例如PanelPlaceHolder。给那个集装箱一个ID
  2. 在代码中,通过ID获取容器
  3. 迭代该容器的Controls集合以获得每个标签。如果除了标签之外还有其他类型的控件,请使用OfType<Label>

您可以使用执行当前逻辑

for(int c = 1; c <= 5 ; c++)
{
var label = "lblWorld" + c.toString();
Label tempLabel = new Label;
tempLabel.ID = label.ToString();
tempLabel.Text = "Hello World!";   
}

不过,您仍然需要处理为单个标签分配值的问题,因此将标签作为容器处理可能更具可扩展性。