0

我在数据库中有一个表,我需要使用这个数据库在我的项目中创建菜单。

我如何用 asp.net c# 创建它?我需要在菜单样式树视图中转换这一行“N:\A\B\C”。但是这个菜单应该是动态的,因为在这个表中,路径可能有不同级别的文件夹!对于我表中的每一行,一个主菜单,对于每个子文件夹,一个 MenuChild。

例如:“N:\A”是我的主菜单,扩展为“B\”,这是我的第二级(子菜单)并扩展为“C\”,这是我在菜单中的第三级

我为此菜单创建第一级。这显示了表格中每一行的完整路径。

private DataTable GetMenuData()
{
    string selectCommand = "SELECT distinct folder_path FROM A";
    string conString = ConfigurationManager.ConnectionStrings["A"].ConnectionString;
    SqlDataAdapter dad = new SqlDataAdapter(selectCommand, conString);
    DataTable dtblCategories = new DataTable();
    dad.Fill(dtblCategories);
    return dtblCategories;
}

private void AddTopMenuItems(DataTable menuData)
{
    DataView view = new DataView(menuData);
    foreach (DataRowView row in view)
    {
        MenuItem newMenuItem = new MenuItem(row["folder_path"].ToString(), row["folder_path"].ToString());
        Menu1.Items.Add(newMenuItem);
    }
}

<div id="WorkingZone"> <asp:Menu ID="Menu1" Orientation="vertical" StaticMenuItemStyleCssClass="menuItem" DynamicMenuItemStyle-CssClass="menuItem" runat="server" /> </div>

4

1 回答 1

2

您无法使用此表结构实现此目的。你必须改变表结构。您必须为 parentid 添加一列,它会告诉您该节点是父节点还是子节点。

请看下面的链接

http://www.codeproject.com/Tips/354696/Dynamically-populating-menu-items-from-the-databas

于 2013-06-12T13:04:25.417 回答