0

我有一个通用列表

List<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>
4

1 回答 1

1

将您的数据源模型更改为具有这样enumerableStudentInfo对象,

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

然后您的父中继器具有主题属性,嵌套中继器具有 StudentInfo 作为数据源,

<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();
于 2015-01-09T03:38:02.993 回答