【问题标题】:Bulding Menu with asp.net using the Database使用数据库使用 asp.net 构建菜单
【发布时间】:2013-06-12 12:47:12
【问题描述】:

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

我如何用 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>

【问题讨论】:

    标签: c# javascript asp.net .net sql


    【解决方案1】:

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

    请看下面的链接

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-24
      • 2012-10-31
      • 2016-04-09
      • 2014-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多