Arraylist как источник данных репитера (как получить доступ из .aspx) - PullRequest
1 голос
/ 16 апреля 2010

У меня есть arraylist:

 Dim downloadsarray As New ArrayList
        downloadsarray.Add(iconlink) 
        downloadsarray.Add(imgpath) 
        downloadsarray.Add(filesize) 
        downloadsarray.Add(description) 

Из какого источника данных моего репитера:

 DownloadsRepeater.DataSource = downloadsarray
    DownloadsRepeater.DataBind()

Подскажите, пожалуйста, как я выводил элементы массива в.Страница ASPX.Я обычно использую (при использовании sqldatareader в качестве источника данных):

    <%#Container.DataItem("1stcolumnnamestring")%>
    <%#Container.DataItem("2ndcolumnnamestring")%>

Но это не работает при использовании массива данных в качестве источника данных.

Спасибо.... Я знаю, как использовать <% # Container.DataItem%> для вывода всего, но мне нужно получить доступ к элементам в массиве по отдельности , а не выводить их все на страницу за один раз,Например, элемент 1 содержит ссылку, элемент 2 содержит путь к изображению, элемент 3 содержит описание.Мне нужно, чтобы они вышли в правильном порядке, чтобы правильно построить ссылку и значок.

Ответы [ 3 ]

6 голосов
/ 16 апреля 2010

В вашем примере вы должны быть в состоянии сделать это:

 <%# Container.DataItem.ToString() %> 

Как правило, при привязке к повторителю каждый элемент данных содержит один и тот же тип данных. В вашем примере каждый элемент отличается - один - это ссылка, другой - путь к изображению и т. Д. Это хорошо, если все, что вы хотите отобразить, - это именно эти элементы (хотя я бы тогда спросил, нужен ли вам ретранслятор для выполнения работы ).

Если вы хотите показать несколько ссылок, вы должны создать класс для каждой ссылки и добавить экземпляр класса в свой ArrayList:

class LinkThing {
  string link;
  string imagePath;
  etc... (do all the usual stuff with properties and constructors)
}

downloadsarray.Add(new LinkThing(link1, path1, size1, desc1));
downloadsarray.Add(new LinkThing(link2, path2, size2, desc2));

и на странице aspx:

 <%# ((LinkThing)Container.DataItem).link %> 
 <%# ((LinkThing)Container.DataItem).path %> 
0 голосов
/ 16 апреля 2010

Попробуйте

<%# Eval(Container.DataItem) #%> 
0 голосов
/ 16 апреля 2010

Попробуйте использовать Container.DataItem, который должен получить отдельные элементы списка массивов.

...