使用AccessDataSource显示嵌套的ListViews(菜单到子菜单)

时间:2014-05-20 12:56:52

标签: asp.net listview datasource

好日子,

通过使用ASP.NET和AccessDataSource,我需要在父列表视图中显示一个列表视图,以便能够拥有菜单及其子菜单。我的代码的当前状态是:

<asp:AccessDataSource ID="adsMenus" runat="server" DataFile="~/App_Data/menus.accdb" SelectCommand="SELECT MenuID, Menu FROM Menus" />

<asp:ListView ID="lvwMenus" runat="server" DataSourceID="adsMenus" DataKeyNames="MenuID">
    <ItemTemplate>
        <h2><%#Eval("Menu")%></h2>

        <asp:AccessDataSource ID="adsSubmenus" runat="server" DataFile="~/App_Data/menus.accdb" SelectCommand="SELECT Submenu FROM Submenus WHERE MenuID = <%#Eval('MenuID')%>" />

        <asp:ListView ID="lvwSubmenus" runat="server" DataSourceID="adsSubmenus">
            <ItemTemplate>
                <h3><%#Eval("Submenu")%></h3>
            </ItemTemplate>
        </asp:ListView> 

    </ItemTemplate>
</asp:ListView>

当我调试并运行页面时,它会出现语法错误。我正处于使用C#学习ASP.NET的阶段,我相信这应该是一个简单的解决方案,但在阅读了几篇博客和帖子之后,我无法找到一个简单的解决方案。

感谢您的帮助和时间!

1 个答案:

答案 0 :(得分:0)

具有由文字和评估字段组成的值的属性通常应完全由<%# %>构建:

SelectCommand='<%# string.Format("SELECT Submenu FROM Submenus WHERE MenuID = {0}", Eval("MenuID")) %>'