2012-05-14 2 views
8

Я хочу создать неупорядоченный список, содержащий тег для показа изображений в моей базе данных, я смотрю на маркированный список, но он не работает с изображением. Как я могу динамически генерировать его из результатов в базе данных, например, если у меня есть 6 изображений в базе данных, тогда я хочу, чтобы создаваемый список должен выглядеть так.Как создать неупорядоченный список динамически в asp.net?

<ul id=""> 

    <li><img src="Resources/img14.jpg" alt="" title=""/></li> 

    <li><img src="Resources/img15.jpg" alt="" title=""/></li> 

    <li><img src="Resources/img17.jpg" alt="" title=""/></li> 

    <li><img src="Resources/img2.jpg" alt="" title=""/></li> 

    <li><img src="Resources/img5.jpg" alt="" title=""/></li> 

    <li><img src="Resources/img3.jpg" alt="" title=""/></li> 

</ul> 

Структура таблицы

User Name nvarchar(50)  
Pic Path nvarchar(MAX) 
+0

Пожалуйста, добавьте свою структуру таблицы, которая хранит имя файла или путь в вашей базе данных. –

+0

Я добавил, пожалуйста, проверьте его –

ответ

29

Для чего вы пытаетесь достичь, было бы лучше всего и проще всего использовать управление <asp:ListView>.

Существует хороший учебник здесь о том, как использовать его, и в значительной степени похожи на то, что вы делаете http://weblogs.asp.net/scottgu/archive/2007/08/10/the-asp-listview-control-part-1-building-a-product-listing-page-with-clean-css-ui.aspx

Это будет в основном вовлекают вас создавая <asp:ListView> управления, как;

<asp:ListView ID="ListView1" runat="server"> 
    <LayoutTemplate> 
     <ul> 
      <asp:PlaceHolder ID="itemPlaceholder" runat="server" />  
     </ul>     
    </LayoutTemplate> 
    <ItemTemplate> 
     <li> 
      <img src='<%#Eval("PicPath")%>' alt='<%#Eval("UserName")%>' /> 
     </li> 
    </ItemTemplate> 
    <EmptyDataTemplate> 
     <p>Nothing here.</p> 
    </EmptyDataTemplate> 
</asp:ListView> 

Затем привязывайте свои данные к нему.

this.ListView1.DataSource = YourDataSource; 
this.ListView1.DataBind(); 
3

Я полагаю, ваш источник данных является DataSet DS, который имеет один DataTable и поле picpath, то вы можете написать итерации непосредственно в ASPX

<ul id=""> 
    <% foreach (DataRow dr in ds.Tables[0].Rows) { %> 

     <li><img src="<% dr[\"picpath\"].ToString() %>" alt="" title=""/></li> 

    <% } %> 
</ul> 

Для сделайте это на стороне сервера, см. принятый ответ в следующей ссылке , см. принятый ответ по следующей ссылке Rendering an unordered list using asp.net

+0

. Я хочу сделать это в коде позади, как я могу сделать эту вещь там –

+0

см. Принятый ответ по следующей ссылке http://stackoverflow.com/questions/2342823/rendering-an -unordered-list-using-asp-net –

+1

Самая большая проблема с этим в коде позади состоит в том, что вам нужно перекомпилировать код в любое время, когда вы хотите изменить способ вывода контента. Тим опубликовал отличный пример того, как это сделать, используя встроенный элемент управления ListView, а Imran - хороший пример простого старинного цикла. Оба будут давать больший контроль над выполнением этого кода. –

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