C# 如何在给定静态菜单下的子菜单中构建动态子菜单

C# 如何在给定静态菜单下的子菜单中构建动态子菜单,c#,asp.net,menu,C#,Asp.net,Menu,这是我使用以下代码创建的简单菜单 <li><asp:LinkButton ID="lnkTesting" runat="server" PostBackUrl="~/Works/frmTesting.aspx">TESTING</asp:LinkButton></li> <li><asp:LinkButton ID="LinkButton5" runat="server">STYLES</asp:LinkButto

这是我使用以下代码创建的简单菜单

 <li><asp:LinkButton ID="lnkTesting" runat="server" PostBackUrl="~/Works/frmTesting.aspx">TESTING</asp:LinkButton></li>
 <li><asp:LinkButton ID="LinkButton5" runat="server">STYLES</asp:LinkButton></li>
这些菜单将从DB加载。菜单1.1应仅包含其内容。 我怎样才能做到这一点?我尝试使用以下代码构建第一个子菜单项,但没有成功

MenuItem add = new MenuItem("STYLES");
    add.ChildItems.Add("Menu 1");
任何基于我需要的参考资料,请使用

 <li><asp:LinkButton ID="LinkButton5" runat="server"><%#Eval ("Column Name") %></asp:LinkButton></li>

  • 这将把DB列中的数据绑定到菜单的每个级别。您需要创建第一个菜单级别并将数据绑定到一个名为“Category”的列,然后您的子菜单项将绑定到一个列,例如“Type”。

    好的,我的建议是这样的,要创建一个动态菜单,我将创建一个 获取页面和子菜单的所有菜单,并返回一个控件(面板或其他任何控件)或一个HTML代码,这些代码可以放在文本控件中,其工作方式如下:

    调用GetMenus函数将获取主菜单中的所有选项,并将其填充到 控件在每个主选项(父选项)中,您需要获取其所有子选项并将其填充到父选项中。如果你把它分解成小任务,它就很容易完成

    我不会给你代码,因为我认为你最好先试试,然后 如果你遇到麻烦,我们将进一步帮助你

    如果你有问题,请提问


    希望这对你有所帮助,你甚至不需要CSS来获得嵌套菜单或列表

     <ul>
     <li>Coffee</li>
     <li>Tea
       <ul>
       <li>Black tea</li>
       <li>Green tea</li>
       </ul>
     </li>
     <li>Milk</li>
    
    • 咖啡
      • 红茶
      • 绿茶
    • 牛奶


    使用此结构。对于每个嵌套标记,您将有一个新的子菜单

    您还应该能够使用此方法动态绑定列名。。没有其他可能性吗?这对你不起作用吗?是否要使用数据库中多列的数据?你总共会有多少个列表项,很多还是4个或5个?使用此方法,菜单1和菜单2都是一列中的值,就像“类别”列一样。然后,当您创建子菜单时,菜单1.1、1.2、1.3将来自另一列。您还需要一个数据源控件,如SqlDataSource,其中您有一个Select查询来检索每个列的数据。我确信还有其他一些方法可以做到这一点,我只熟悉这个方法并使用Eval(“列名”)a:你找到问题的DB部分了吗?是的,DB,使用查询获取所有记录很容易。。。但是获取的数据应该按照我需要的方式设计……谢谢@Liran。我尝试并使菜单从DB动态绑定。问题是CSS。菜单依次显示的位置与(菜单->子菜单->子菜单->子菜单)。。需要找出问题所在。@SRIRAMRAMACHANDRAN当您在属性CssClass中创建菜单并向其添加类时,如果您想发布到目前为止的内容,我可以查看并提供帮助。如果您将发布代码,那么发布HTML、CSS和生成HTML的代码将会有所帮助
     <ul>
     <li>Coffee</li>
     <li>Tea
       <ul>
       <li>Black tea</li>
       <li>Green tea</li>
       </ul>
     </li>
     <li>Milk</li>