2012-06-20 21 views
0

我有一個主頁面。我想添加3個菜單項到頁面運行時。 如何將父菜單和子菜單在運行時添加到母版頁上? 在前2個菜單項中,有2個子菜單​​項。我怎樣才能做到這一點?添加運行時間菜單

代碼如下。

public partial class MasterPage2 : System.Web.UI.MasterPage 
{ 
protected void Page_Load(object sender, EventArgs e) 
{ 
    LblDate.Text = DateTime.Today.ToString("dddd dd,MMM yyyy"); 
    lblusername.Text = Session["username"].ToString(); 
    if (Session["role"].ToString() == "1") 
    { 
     //Menu1.Items.Add(new MenuItem("System Information", "1", "", "~/home.aspx")); 
     //Menu1.Items.Add(new MenuItem("Administration", "2", "", "~/home.aspx")); 
     //Menu1.Items.Add(new MenuItem("Signout", "3", "", "~/Login.aspx")); 

     //Menu1.FindItem("1").ChildItems.Add(new MenuItem("Search System Information", "", "", "~/SearchSystemInformation.aspx")); 
     //Menu1.FindItem("1").ChildItems.Add(new MenuItem("Request New System", "", "", "~/RequestNewSystem.aspx")); 

     //Menu1.FindItem("2").ChildItems.Add(new MenuItem("Manage System's Password", "", "", "~/SearchPasswordInformation.aspx")); 
     //Menu1.FindItem("2").ChildItems.Add(new MenuItem("Manage Administrators", "", "", "~/ManageAdmins.aspx")); 

     MenuItem ParentMenuItem = null; 
     MenuItem ChildMenuItem = null; 

     ParentMenuItem = CreateMenuItem("System Information", "~/home.aspx", ""); 

     ChildMenuItem = CreateMenuItem("Search System Information", "~/SearchSystemInformation.aspx", ""); 

     ParentMenuItem.ChildItems.Add(ChildMenuItem); 

     ChildMenuItem = CreateMenuItem("Request New System", "~/RequestNewSystem.aspx", ""); 

     ParentMenuItem.ChildItems.Add(ChildMenuItem); 

     Menu1.Items.Add(ParentMenuItem); 

     ParentMenuItem = CreateMenuItem("Administration", "~/home.aspx", ""); 

     ChildMenuItem = CreateMenuItem("Manage System's Password", "~/SearchPasswordInformation.aspx", ""); 

     ParentMenuItem.ChildItems.Add(ChildMenuItem); 

     ChildMenuItem = CreateMenuItem("Manage Administrators", "~/ManageAdmins.aspx", ""); 

     ParentMenuItem.ChildItems.Add(ChildMenuItem); 

     Menu1.Items.Add(ParentMenuItem); 

     ParentMenuItem = CreateMenuItem("Signout", "~/Login.aspx", ""); 
     Menu1.Items.Add(ParentMenuItem); 

     //MenuItem mnuSystemInfo = new MenuItem(); 
     //mnuSystemInfo.NavigateUrl = "~/Home.aspx"; 
     //mnuSystemInfo.Text = "System Information"; 
     ////Menu1.Items.Add(mnuSystemInfo); 

     //MenuItem mnuSearchSystemInfo = new MenuItem(); 
     //mnuSearchSystemInfo.NavigateUrl = "~/SearchSystemInformation.aspx"; 
     //mnuSearchSystemInfo.Text = "Search System Information"; 
     //mnuSystemInfo.ChildItems.Add(mnuSearchSystemInfo); 
     //Menu1.Items.Add(mnuSystemInfo); 
     //Menu1.Items.Add(mnuSearchSystemInfo); 




    } 
    else if(Session["role"].ToString()=="2") 
    { 
     //Menu1.Items.Clear(); 
     //Menu1.Items.Add(new MenuItem("System Information", "1", "", "")); 
     //Menu1.Items.Add(new MenuItem("Signout", "3", "", "")); 

     //Menu1.FindItem("1").ChildItems.Add(new MenuItem("Search System Information", "", "", "~/SearchSystemInformation.aspx")); 
     //Menu1.FindItem("1").ChildItems.Add(new MenuItem("New System Request", "", "", "~/RequestNewSystem.aspx")); 
    } 
} 

MenuItem CreateMenuItem(String text, String url, String toolTip) 
{ 
    // Create a new MenuItem object. 
    MenuItem menuItem = new MenuItem(); 

    menuItem.Text = text; 
    menuItem.NavigateUrl = url; 
    menuItem.ToolTip = toolTip; 
    return menuItem; 
} 

}

回答

2

您可以在代碼中動態背後節點添加到菜單:

MenuItem mnuTest = new MenuItem(); 
mnuTest.NavigateUrl = ""; 
mnuTest.Text = "Test"; 
Menu1.Items.Add(mnuTest); 

您可以在子節點菜單加入:

MenuItem mnuTest = new MenuItem(); 
mnuTest.NavigateUrl = ""; 
mnuTest.Text = "Test"; 


MenuItem mnuTestChild = new MenuItem(); 
mnuTestChild.NavigateUrl = ""; 
mnuTestChild.Text = "Child Test"; 
mnuTest.ChildItems.Add(mnuTestChild); 
Menu1.Items.Add(mnuTestChild); 
+0

@ ebad86兒童項目應當我點擊父菜單時出現。隨着代碼子項目添加爲父菜單。我想要在父菜單下顯示子項目.. – Abu

+0

@Abu分享你所做的事情。 –

+0

赤我編輯的問題。 – Abu