我正在尝试创建一个包含所有类别的侧边菜单(稍后在带有子类别的子菜单上)
在线发现此代码,但我不确定发生了什么
asp:Repeater id="MenuRepeater" runat="server">
<headertemplate>
<ul>
</headertemplate>
<itemtemplate>
<li></a></li>
</itemtemplate>
<footertemplate>
</ul>
</footertemplate>
</asp:Repeater>
我应该在li标签和使用LINQ需要什么代码之间输入什么?
答案 0 :(得分:1)
Repeater是DataBound控件,因此它需要IDataSource将数据绑定到/取出它,您可以编写LINQ查询以从数据库中获取菜单并调用.ToList()方法并将其绑定到转发器控件。
例如:
<asp:Repeater id="MenuRepeater" runat="server">
<headertemplate>
<ul>
</headertemplate>
<itemtemplate>
<li><%# Bind("MenuItem") %></li>
</itemtemplate>
<footertemplate>
</ul>
</footertemplate>
</asp:Repeater>
在后面的代码中你将创建你的IQueryable对象并通过调用.ToList()将它转换为IList:
var query = from m in Context
select m.MenuItem;
MenuRepeater.DataSource = query.ToList();
MenuRepeater.DataBind();