-1

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

在网上找到了这段代码,但我不确定发生了什么

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

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

4

1 回答 1

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();
于 2012-12-26T19:32:18.640 回答