以分组方式将通用列表数据显示回转发器
本文关键字:数据 列表 显示 转发器 方式 | 更新日期: 2023-09-27 18:36:46
>我有一个通用列表
List<StudentInfo>
学生信息有
Name,Marks,Subject,Age as properties.
我把这个学生信息作为列表返回,它试图绑定到中继器。
<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>
将数据源模型更改为具有StudentInfo
对象的enumerable
,如下所示,
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();