4

我在一个有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 循环并使用动态系统获取标签的名称。

4

2 回答 2

5
  1. 将所有标签放入某个容器中,例如 aPanelPlaceHolder。给那个容器一个 ID。
  2. 在您的代码中按 ID 获取容器。
  3. 迭代该Controls容器的集合以获取每个标签。OfType<Label>如果除了标签之外可能还有其他类型的控件,请使用。
于 2013-02-04T21:33:28.773 回答
0

您可以通过以下方式遵循当前的逻辑:

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

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

于 2013-02-04T21:37:14.430 回答