以分组方式将通用列表数据显示回转发器
Display generic list data back to repeater in a grouped manner
我有一个通用列表
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>
Output i am getting:
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>
更改您的数据源模型,使其具有 enumerable
个 StudentInfo
对象,像这样,
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>
你的 Parents 数据源是这样的,
myParent.DataSource = listOfModel;
myParent.DataBind();
我有一个通用列表
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>
Output i am getting:
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>
更改您的数据源模型,使其具有 enumerable
个 StudentInfo
对象,像这样,
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>
你的 Parents 数据源是这样的,
myParent.DataSource = listOfModel;
myParent.DataBind();