2015-01-09 4 views
0

у меня есть общий списокПоказать общий список данных обратно повторителя сгруппированных образом

List<StudentInfo> 

StudentInfo имеет

Name,Marks,Subject,Age as properties. 

Я получаю StudentInfo назад, как в виде списка, который я пытался связать с ретранслятор.

<asp:Repeater ID="myRepeater" runat="server"> 
      <ItemTemplate>     
        <%# Eval("Name") %>     
        <%# Eval("Marks") %> 
        <%# Eval("Subject") %> 
        <%# Eval("Age") %>     
      </ItemTemplate> 
     </asp:Repeater> 

выхода я получаю:

John Smith 
85 
English 
12 
John Doe 
78 
English 
12 
Mary Ann 
72 
Chemistry 
14 

Ожидаемого результат на повторитель привязке данных является - данные должны быть дисплеем на предмет

English 

John Smith 
85 
12 
John Doe 
78 
12 


Chemistry 

Mary Ann 
72 
14 

Я пытался использовать вложенный ретранслятор, но не получая ожидаемого результата. Ниже приведена только тема, когда код стоит

   myParent.DataSource = listOfStudentInfo; 

       myParent.DataBind(); 

Как сделать ретранслятор для детей, чтобы показать остальное?

<asp:Repeater ID="myParent" runat="server"> 
      <ItemTemplate>    
         <%# Eval("Subject") %>     
       <asp:Repeater runat="server" ID="myChild"> 
       <ItemTemplate>    
         <%# Eval("Name") %> 
         <%# Eval("Marks") %> 
         <%# Eval("Age") %> 
        </ItemTemplate> 
       </asp:Repeater> 
       </ItemTemplate> 
</asp:Repeater> 

ответ

1

изменить источник данных Модели иметь enumerable из StudentInfo объекта, как это,

public class Model{ 
    public string Subject {get; set;} 
    public IEnumerable<StudentInfo> StudentInfo {get; set;} 
} 

Тогда ваш родительский повторитель имеет предмет собственности и вложенный повторитель имеет StudentInfo в качестве DataSource,

<asp:Repeater ID="myParent" runat="server"> 
      <ItemTemplate>    
         <%# Eval("Subject") %>     
       <asp:Repeater runat="server" ID="myChild" DataSource='<%# Eval("StudentInfo ") %>'> 
       <ItemTemplate>    
         <%# Eval("Name") %> 
         <%# Eval("Marks") %> 
         <%# Eval("Age") %> 
        </ItemTemplate> 
       </asp:Repeater> 
       </ItemTemplate> 
</asp:Repeater> 

И ваш источник данных для родителей выглядит следующим образом:

   myParent.DataSource = listOfModel;  
       myParent.DataBind();