2013-12-13 4 views
2

Я пытаюсь сделать простой сайт (изображения, кнопки, формы и т. Д.), И у меня много изображений, но я не хочу устанавливать их URL один за другим, вместо этого я хочу сделать что-то вроде этого.Динамически вызывать изображения из цикла

Например у меня есть 3 изображения image1, image2, image3 уже созданы так в HTML

<asp:Image ID="Image1" 
<asp:Image ID="Image2" 
<asp:Image ID="Image3" 
enter code here 

у меня есть папка с изображениями, имена которых являются 1,2, ..., 5,6, ... и на мероприятии Page_Load я хочу называть их такими, как это

for (int i=1; i< 4;i++){ 
image[i].ImageUrl = "(path of the folder)"+i.ToString()+".jpg"; 
} 

Что такое лучший способ сделать это

+0

Что случилось с кодом, который вы опубликовали? Я вижу некоторые очевидные улучшения, но я думаю, что это в значительной степени идея. – evanmcdonnal

+0

Ну изображение [i] не является допустимой переменной, которую он просто не компилирует, или, может быть, я не знаю синтаксиса –

+0

, вам нужен какой-то imagecontainer ('asp: Panel'), который известен serveride и просто добавляет' new HtmlImage() ' к этому контейнеру. – efkah

ответ

1

Ты почти там - Использование FindControl найти каждый элемент управления Image

for (int i=1; i< 4;i++) 
{ 
    Control control = Page.FindControl(string.Format("Image{0}", i)); 
    if (control != null) 
    { 
     control.ImageUrl = "(path of the folder)"+i.ToString()+".jpg"; 
    } 
} 

Как @efkah указывает, если вы поставите эти элементы изображения в панели будет быстрее найти их с помощью MyPanel.FindControl(...

+0

y эти изображения находятся на панели id = "panel1" –

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