2009-10-22 3 views
0

У меня есть 8 или более элементов управления изображениями внутри HyperLink и PlaceHolder Мне нужно изменить параметры каждого из них. Это для управления галереей Sitefinity. Прямо сейчас я делаю это раз 8:Как петля через вложенные элементы управления в .net C#?

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; 
    } 

Я просто скопировать & вставить его и заменить номер. Но я хочу сделать это в цикле. Я просто не могу найти способ ссылаться на каждый набор элементов управления.

Как это можно сделать?

ответ

4

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

+0

Идеально подходит для рекурсии. +1 –

+0

Обратите внимание, что при отключении этот пример проверяет определенные типы управления, а не * все * элементы управления. Обычно вы просто используете что-то вроде Элементы управления [i] .Enabled = false; что-то вроде этого. –

+0

, а также одна из самых больших жалоб, которые у меня есть с картой .Net. Когда я вызываю .FindControl («mytextbox»). , , , Зачем мне приходится вручную перезаписывать дерево управления? Я так устал, если (mytextbox.HasControls()) {recurision} endif .... – andrewWinn

0

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

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

Это устранит необходимость в цикле.

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

Смежные вопросы