在asp.net中创建动态菜单

时间:2012-12-26 17:24:59

标签: asp.net linq

我正在尝试创建一个包含所有类别的侧边菜单(稍后在带有子类别的子菜单上)

在线发现此代码,但我不确定发生了什么

asp:Repeater id="MenuRepeater" runat="server">
                    <headertemplate>
                        <ul>
                    </headertemplate>
                        <itemtemplate>
                            <li></a></li>
                        </itemtemplate>
                    <footertemplate>
                        </ul>
                     </footertemplate>
                </asp:Repeater>

我应该在li标签和使用LINQ需要什么代码之间输入什么?

1 个答案:

答案 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();