0

データベースにテーブルがあり、このデータベースを使用してプロジェクトにメニューを作成する必要があります。

asp.net c#でこれを作成するにはどうすればよいですか? メニュースタイルのツリービューで、この行「N:\A\B\C」を変換する必要があります。ただし、この表では、パスにさまざまなレベルのフォルダーが含まれている可能性があるため、このメニューは動的である必要があります。テーブルの行ごとに 1 つの Main Menu があり、各サブフォルダーに 1 つの MenuChild があります。

例: 「N:\A」はメイン メニューで、「B\」は第 2 レベル (サブメニュー) に展開され、「C\」はメニューの第 3 レベルに展開されます。

I このメニューの最初のレベルを作成します。これは、テーブル内の各行のフル パスを示しています。

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 に答える