如何在.net c#中循环嵌套控件?

时间:2009-10-22 16:42:22

标签: c# .net controls loops sitefinity

我在HyperLink和PlaceHolder中有8个或更多Image控件我需要更改每个参数。它适用于Sitefinity图库控件。现在我这样做8:

if (String.IsNullOrEmpty(Image_1_File_Name) == true) {
   Image1_ph.Visible = false;
  }
  else {  
  productImageLink1.NavigateUrl = Folder_URL + Image_1_File_Name + "_l.jpg";
  productImageLink1.Attributes.Add("rel", "zoom-id:"+ zoom.ClientID +";zoom-fade: true");
  productImageLink1.Attributes.Add("rev", Folder_URL + Image_1_File_Name + "_m.jpg");
  productImage1.ImageUrl = Folder_URL + Image_1_File_Name + "_tn.jpg";
  productImage1.AlternateText = Image_1_Alt_Tag;
  }

我只是复制并粘贴它并替换数字。但是我想在一个循环中这样做我只是找不到引用每组控件的方法。

如何实现这一目标?

2 个答案:

答案 0 :(得分:4)

您可以使用递归来遍历面板中的各种控件。 Here就是一个例子。

答案 1 :(得分:0)

这是一种可能适合您的方法:

  1. 创建一个继承自HyperLink的类(PlaceHolder的另一个)
  2. 在类中添加一个属性,允许您设置图像URL的编号。
  3. 然后在初始化功能中,您可以获得控制,您可以根据您在步骤2中创建的属性修复NavigateUrl(和您的其他属性)。
  4. 在表单中使用新类(而不是HyperLink和PlaceHolder控件),在设计器中设置第2步中的属性。
  5. 这将消除对循环的需要。

    谷歌搜索可能会为您提供有关如何创建继承服务器控件的各种帮助/教程。