2012-01-17 2 views
1

Предположим, у меня есть набор разделенных запятыми списков, которые мне нужно отобразить в 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 
+0

Ваш вопрос был изменен на что-то совершенно иное ... вы должны просто задать новый вопрос. Теперь мой ответ, который ответил на ваш первый вопрос, точно не имеет смысла ... – Kelsey

+0

Извините ... Я знаю! Я передумал, как это сделать ... все еще ... ответы на оба вопроса по-прежнему актуальны, у меня есть проблемы с разработкой, как подойти к этому! –

+0

где есть результат 'List2' в вашем вопросе? Вы можете просто объединить списки в один «Список» с пользовательским объектом, а затем просто привязать к новому «списку». – Kelsey

ответ

3

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

Markup:

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

Prep Код проверки:

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

У меня есть предложение о 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() 
0

в .net WebForms вы могли бы использовать

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

Надежда, что помогает.

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