Вопрос по html, asp.net, c# – Настраиваемые маркированные элементы списка в ASP.NET

2

Я только начинающий в ASP.NET. Мой вопрос прост: я хочу динамически добавлять элементы списка из кода, стоящего за файлом, и хочу, чтобы каждый элемент имел текст и пару изображений в виде гиперссылок. Образец HTML должен выглядеть так:

<ul>
  <li>do foo &nbsp;<a href="#"><img src="some_image.png" /></a></li>
  <li>do bar &nbsp;<a href="#"><img src="some_image.png" /></a></li>
  ...
</ul>

Количество элементов зависит от коллекции, полученной с помощью кода за файлом.

Постскриптум мой код файла написан на C #

Ваш Ответ

2   ответа
19

Repeater control - это самый простой способ создания настраиваемого маркированного списка, плюс он дает вам полный контроль над HTML, который вы генерируете. Чтобы использовать его, настройте шаблон следующим образом:

<asp:Repeater runat="server" ID="ListRepeater">
   <ItemTemplate>
       <li>do foo &nbsp;<a href='#'><img src='<%# Eval("ImageSource") %>' /></a></li>
   </ItemTemplate>
</asp:Repeater>
</ul>

Затем в своем коде (или декларативно в разметке, в зависимости от ваших предпочтений) установите источник данных ретранслятора и свяжите его:

void Page_Load(object sender, EventArgs e) {
  // Some method you've defined to get your images
  List<string> imageList  = GetImages();
  ListRepeater.DataSource = imageList;
  ListRepeater.DataBind();
}

ASP.NET отображает шаблон один раз для каждого элемента в вашем источнике данных.

Repeater Элемент управления имеет больше возможностей, чем то, что я здесь показал, но с этого следует начать. Удачи!

Edit: спустя год после написания этого ответа, я все еще думаю, что повторители - лучший вариант среди серверных элементов управления, но я все больше предпочитаюforeach заявления прямо в моих шаблонах .aspx:


    <% foreach(Image image in this.Images) { %>
        <li>do foo &nbsp;<a href='#'><img src='<%= image.Source %>' /></a></li>
    <% } %>
</ul>
Рад помочь! Это правда, что с использованием & quot; DataBinder.Eval (...) & quot; яснее, но я не могу заставить себя настаивать на этом (или даже использовать это!).
я думаю, это должно быть записано как & lt; ul & gt; & lt; asp: Repeater runat = & quot; сервер & quot; ID = & Quot; ListRepeater & Quot; & GT; & Lt; ItemTemplate & GT; & lt; li & gt; do foo & lt; a href = "#"; img src = "% # DataBinder.Eval (...)%" & gt; " / & GT; & Lt; / а & GT; & Lt; / & Li GT; & Lt; / ItemTemplate & GT; & Lt; / осины: Ретранслятор & GT; & Lt; / мкл & GT; В любом случае, большое спасибо за руководство sudarsanyes
0

Похожие вопросы