2011-04-20 101 views
2

我有一個菜單控件(Menu1),我想根據我已經存儲的有關數據庫中已認證用戶的某些信息從菜單中添加/刪除項目。我不確定如何從菜單控件訪問特定的菜單項並在運行時刪除它們?在ASP.NET中動態添加/刪除菜單項?

+0

答案的任何解決您的問題! ..等待你的反饋=) – lKashef 2011-04-22 04:41:08

回答

2

ASP.NET菜單可以通過後面的代碼訪問。在標記聲明的菜單中,具有ID「菜單1」,例如,可以像這樣進行訪問:

foreach (MenuItem item in Menu1.Items) { 
    if (item.NavigateUrl.Contains(pageName)) { 
     item.Selected = true; 
     item.Text = "customText"; 
    } 
    // ... 
    } 

在該示例中,當前選擇的菜單項被根據當前頁的菜單上選擇的。同樣,Items集合可用於添加或刪除單個菜單項。 請注意,在菜單項目上,ChildItems集合可用於更改子菜單項集合。

更多的相關信息:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.menu.items.aspx

@Edit:使得它在這個問題

0

祝你更具體,但我知道,徵求意見通知還挺吸這裏的數據更加連貫。所以如果你能確切地告訴我

  1. 什麼是您將添加/刪除項目的基礎?
  2. 它們是如何存儲在數據庫中的(這意味着它們存儲在配置文件表中的一個成員表中?或者用戶被引用的自定義表中?
  3. 你想象的技術是什麼?在簡單的英語你的想法?

我不知道,雖然如何從菜單 控制訪問 特定的菜單項,並在運行時將其刪除?

  • A.刪除項目:

    Menu1.Items.Remove(Menu1.FindItem("Jobs"))

  • B.添加項目:

    Menu1.Items.Add(new MenuItem("News"))

    或使用該指定新添加了必需的 性質item:

    MenuItem item = new MenuItem()

    item.NavigateUrl =""

    item.Text = "Child Test"

    Menu1.Items.Add(mnuTestChild)

0
protected void Page_Load(object sender, EventArgs e) 
{ 
    con.ConnectionString = ConfigurationManager.ConnectionStrings["MyConString"].ConnectionString; 
    string selectCmd = "Select * from Pages where Status='"+1+"'"; 
    SqlDataAdapter dap = new SqlDataAdapter(selectCmd,con); 
    DataSet ds = new DataSet(); 
    dap.Fill(ds); 
    if (!Page.IsPostBack) 
    { 
     int x = 0; 
     string parent_id = ""; 
     foreach (DataRow dr in ds.Tables[0].Rows) 
     { 
      parent_id = dr[0].ToString(); 
      Menu1.Items.Add(new MenuItem(dr["Title"].ToString(), dr["URL"].ToString(), dr["ID"].ToString())); 
     } 
     x++; 
    } 

} 
+0

添加一些描述你的代碼做什麼。 – 2012-10-20 02:14:23

相關問題