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

时间:2014-08-25 11:18:56

标签: c# asp.net menu

enter image description here

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

 <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>

我还没有使用<asp:Menu>。我的情况是:我需要制作第5个菜单&#34; STYLES&#34;在菜单&#34; STYLES&#34;下从DB动态加载。示例就像这样??

 STYLES
 Menu 1 
        Menu 1.1
                 Menu 1.1.1
                 Menu 1.1.2
        Menu 1.2
                 Menu 1.2.1
        Menu 1.3
 Menu 2

这些菜单将从DB加载。菜单1.1应仅包含其内容。 我怎样才能做到这一点?我尝试使用以下代码构建第一个子菜单项但它没有工作..

MenuItem add = new MenuItem("STYLES");
    add.ChildItems.Add("Menu 1");

根据我的需要提供任何参考资料????

3 个答案:

答案 0 :(得分:1)

好吧所以我的建议是这样的,创建一个动态菜单我会创建一个类 获取页面和子菜单的所有菜单,并返回一个控件(面板或任何东西)或可以放在文字控件中的HTML代码,它将工作如下:

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

我没有给你它的代码,因为我认为它更适合你尝试然后 如果你遇到麻烦我们会帮助你。

如果您有疑问,请询问。

希望这有帮助

答案 1 :(得分:0)

您可以使用

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

这会将数据从DB列绑定到菜单的每个级别。您需要创建第一个菜单级别并将该数据绑定到一个名为&#34; Category&#34;的列,然后您的子菜单项将绑定到诸如&#34; Type&#34;之类的列。

答案 2 :(得分:0)

您甚至不需要CSS来获取嵌套菜单或列表。

 <ul>
 <li>Coffee</li>
 <li>Tea
   <ul>
   <li>Black tea</li>
   <li>Green tea</li>
   </ul>
 </li>
 <li>Milk</li>

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