开发者

How to loop through nested controls in .net c#?

I have 8 or more Image controls each inside HyperLink and PlaceHolder I need to change parameters of each. It's for a Sitefinity gallery control. Right now I do this times 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开发者_Go百科_1_File_Name + "_m.jpg");
  productImage1.ImageUrl = Folder_URL + Image_1_File_Name + "_tn.jpg";
  productImage1.AlternateText = Image_1_Alt_Tag;
  }

I just copy&paste it and replace number. But I want to do this in a loop I just can't find a way to reference each set of controls.

How can this be accomplished?


You can use recursion to loop through various controls within panels. Here's an example.


Here is an approach that may work for you:

  1. Create a class that is inherited from HyperLink (Another for PlaceHolder)
  2. Add a property to the class that will allow you to set the number for the image url.
  3. Then in the Initialize function for you're derive control, you can fix your NavigateUrl (and your other properties) base on the property you created in step #2.
  4. Use your new class in the forms (instead of the HyperLink and PlaceHolder controls), in the designer set your property from step #2.

This will eliminate the need for the loop.

A google search will probably give you all kinds of help/tutorial on how to create inherited server controls.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜