Как перебрать вложенные элементы управления в .net c #? - PullRequest
0 голосов
/ 22 октября 2009

У меня есть 8 или более элементов управления изображениями внутри HyperLink и PlaceHolder, мне нужно изменить параметры каждого из них. Это для контроля галереи 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 ]

4 голосов
/ 22 октября 2009

Вы можете использовать рекурсию для просмотра различных элементов управления на панелях Вот пример .

0 голосов
/ 22 октября 2009

Вот подход, который может работать для вас:

  1. Создание класса, унаследованного от HyperLink (Другой для PlaceHolder)
  2. Добавьте в класс свойство, которое позволит вам установить номер для URL изображения.
  3. Затем в функции Initialize для управления вы можете зафиксировать базу NavigateUrl (и другие ваши свойства) для свойства, созданного на шаге № 2.
  4. Используйте ваш новый класс в формах (вместо элементов управления HyperLink и PlaceHolder), в конструкторе задайте свойство с шага № 2.

Это исключит необходимость в петле.

Поиск в Google, вероятно, даст вам всевозможную помощь / руководство по созданию унаследованных серверных элементов управления.

...