2014-10-21 4 views
0

У меня проблема с тегом Repeater ASP.NET. Он просто не генерирует html-код, когда страница запущена. Я пытаюсь использовать его для создания списка тега для слайд-шоу, вот код жерех:Repeater asp.net тег не работает

<asp:Repeater id="foto" runat="server"> 
<ItemTemplate> 
<img src='<%# (string)Container.DataItem %>'/> 
</ItemTemplate> 
</asp:Repeater> 

А вот код позади:

protected void Page_Load(object sender, EventArgs e) 
{  
    if (IsPostBack) 
    { 
     int num = Directory.GetFiles(@"C:\Users\Paolo\Desktop\Podisti\Slideshow\" + Request.QueryString["Cartella"]).Length; 
     List<string> elencoUrl = new List<string>(); 
     for (int i = 1; i <= num; i++)    
      elencoUrl.Add(@"Slideshow\" + Request.QueryString["Cartella"] + "00" + i + "_jpg.jpg"); 
     foto.DataSource = elencoUrl; //può essere ad esempio un Array o una List di stringhe 
     foto.DataBind(); 
    } 
} 

EDIT: Спасибо вы для ответа, даже если это не решение проблемы: страница , которую я создал, - это всего лишь тест, который с нажатием 2 кнопок ссылки перенаправляет на ту же страницу с другой строкой, чтобы повторитель может создавать различные атрибуты src для тега img каждый раз. Обратный вызов здесь только для предотвращения ошибки при первом загрузке страницы (где querystring равно null), Я изменю его, когда я решит эту проблему.

Основная проблема заключается в том, что повторитель не делает свою работу, если я проверить код страницы во время ее выполнения:

<div style="width:500px;height:400px">   
    <div class="fotorama"> 
     /*The repeater doesn't create the <img> tags*/ 
    </div>    
</div> 

ответ

3
if (IsPostBack) 

означает, что ваш код будет выполняться только тогда, когда вы просто отправил назад страницу, но вы, вероятно, захотите показать ее по умолчанию, а не во время обратной передачи. Закрепить его на:

if (!IsPostBack) 

если это так.

Кроме того, вы никогда не должны пытаться зайти за пределы своей папки веб-приложений, чтобы получать папки/файлы, потому что они не будут доступны на сервере. Никогда не программируйте такие пути!