Использовать репитер из массива - PullRequest
1 голос
/ 17 января 2012

Предположим, у меня есть набор разделенных запятыми списков, которые мне нужно отобразить в Repeater, как бы я?

Итак,

List1 = "1, 2, 3, 4"
List2 = "a, b, c, d"

Если я преобразую их в массивыКак мне связать их с Repeater и получить значения каждого списка в Repeater?

Я хочу получить HTML-вывод, который выглядит следующим образом:

<div>
    <span> CONTENT TO LIST 1(0) </span>
    <span> CONTENT OF LIST 2(0) </span>
</div>

<div>
    <span> CONTENT TO LIST 1(1) </span>
    <span> CONTENT OF LIST 2(1) </span>
</div>
.... etc

Ответы [ 3 ]

4 голосов
/ 17 января 2012

Да, можете, вот простой пример.

Markup:

<asp:Repeater ID="rpTest" runat="server">
    <ItemTemplate>
        <div id="row<%# Eval("ID").ToString() %>">DIV CONTENT</div>
    </ItemTemplate>
</asp:Repeater>

Подготовительный код теста:

public class TestObject
{
    public int ID { get; set; }
    public string Text { get; set; }
}

В вашей Page_Load или где вы инициализируете Repeater:

List<TestObject> lst = new List<TestObject>();
lst.Add(new TestObject() { ID = 0, Text = "Zero" });
lst.Add(new TestObject() { ID = 1, Text = "One" });
lst.Add(new TestObject() { ID = 2, Text = "Two" });
lst.Add(new TestObject() { ID = 3, Text = "Three" });

rpTest.DataSource = lst;
rpTest.DataBind();

Выход:

<div id="row0">DIV CONTENT</div>     
<div id="row1">DIV CONTENT</div>     
<div id="row2">DIV CONTENT</div>    
<div id="row3">DIV CONTENT</div>

EDIT:

Чтобы связать с Array, просто назначьте Array на DataSource, а затем получите доступ к Array элементам в вашей привязке с помощью:

<%# Container.DataItem %>
0 голосов
/ 17 января 2012

в веб-формах .net вы можете использовать

<% for (int i = 0; i < totalRequired; i++)
   { %>
   <div id="<%= i %>"></div>
<% } %>

Надеюсь, это поможет.

0 голосов
/ 17 января 2012

У меня есть предложение aspx:

<asp:Repeater ID="rep" runat="server">
        <ItemTemplate>
            <div>
                <span>CONTENT TO LIST 1(<%# DataBinder.Eval(Container, "DataItem.Key").ToString()%>)</span>
                <span>CONTENT TO LIST 2(<%# DataBinder.Eval(Container, "DataItem.Value").ToString()%>)</span>
            </div>
        </ItemTemplate>
    </asp:Repeater>

Код позади:

Dim test() As String = "1,2,3,4".Split(",")
Dim test2() As String = "a,b,c,d".Split(",")

Dim ls As New List(Of KeyValuePair(Of String, String))
For i As Integer = 0 To test.Count - 1
    ls.Add(New KeyValuePair(Of String, String)(test(i), test2(i)))
Next
rep.DataSource = ls
rep.DataBind()
...