BlogPost和Category-many关系,如果数据集直接绑定转发器,现在如何使用首先开发的代码绑定转发器?
public class BlogPost
{
public int BolgID
{
get;
set;
}
public int ID
{
get;
set;
}
public string Title
{
get;
set;
}
public virtual ICollection<Category> Category
{
get;
set;
}
}
public class Category
{
public int ID
{
get;
set;
}
public string Title
{
get;
set;
}
public virtual ICollection<BlogPost> BlogPost
{
get;
set;
}
}
using(MyDemoContext context = new MyDemoContext())
{
DbSet<BlogPost> post = context.Set<BlogPost>();
var v = post.Include(p=>p.Category).Where(p=>p.ID==5).ToList();
Repeater1.DataSource = v;
Repeater1.DataBind();
}
BlogID BLOGTITLE CategoryTitle //类别的标题
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%# Eval("ID")%></td>
<td><%# Eval("Title")%></td>
<td><%# Eval("")%></td>//here how to bind Category.Ttitle?
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
如何获得此结果:
BlogID BlogTitle CategoryTitle
5 test C#
5 test asp.net
5 test VB
答案 0 :(得分:0)
Catgory和BlogPost有很多关系,因此在博客文章中会有多个类别。我不确定你想在这里显示哪个类别标题 - 通常,我可能会显示逗号分隔列表(或者可能是项目符号列表),这可以通过嵌套转发器来实现。例如,
<ItemTemplate>
<tr>
<td><%# Eval("ID")%></td>
<td><%# Eval("Title")%></td>
<td>
<asp:Repeater runat="server" ID="C" DataSource='<%# Eval("Category") %>'>
<ItemTemplate><%# Eval("Title") #></ItemTemplate>
<SeparatorTemplate>, </SeparatorTemplate>
</asp:Repeater>
</td>
</tr>
</ItemTemplate>
Diclaimer:未经测试的代码
Noe上面的模板会生成逗号分隔列表,但您可以根据需要调整布局。