【问题标题】:Dynamically Add/Remove Menu Items in ASP.NET?在 ASP.NET 中动态添加/删除菜单项?
【发布时间】:2011-08-09 14:36:36
【问题描述】:

我有一个菜单控件 (Menu1),我想根据我在数据库中存储的有关经过身份验证的用户的某些信息从菜单中添加/删除项目。我不确定如何从菜单控件访问特定菜单项并在运行时将其删除?

【问题讨论】:

  • 任何答案都能解决您的问题! .. 等待您的反馈 =)

标签: asp.net vb.net menu navigation


【解决方案1】:

可以通过后面的代码访问 ASP.NET 菜单。在标记中声明的菜单,例如 id 为“Menu1”,可以这样访问:

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

在该示例中,当前选择的菜单项是根据菜单所在的当前页面选择的。同样,Items 集合可用于添加或删除单个菜单项。 请注意,在菜单 items 上,ChildItems 集合可用于更改子菜单项集合。

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

@Edit:使其与问题中的数据更加一致

【讨论】:

    【解决方案2】:

    我希望你更具体,但我知道 cmets 的通知在这里有点糟糕。所以如果你能准确地告诉我

    1. 您将根据哪些信息添加/删除项目?
    2. 它们是如何存储在数据库中的(这意味着它们是存储在成员表之一中?在配置文件的表中?还是在其中引用用户的自定义表中?
    3. 你用简单的英语想象的技术是什么?

    我不确定如何访问 菜单中的特定菜单项 在运行时控制和删除它们?

    • A.删除项目:

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

    • B.添加项目:

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

      或者使用它来指定所需的 新添加项目的属性:

      MenuItem item = new MenuItem()

      item.NavigateUrl =""

      item.Text = "Child Test"

      Menu1.Items.Add(mnuTestChild)

    【讨论】:

      【解决方案3】:
      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++;
          }
      
      }
      

      【讨论】:

        猜你喜欢
        • 2011-11-18
        • 1970-01-01
        • 1970-01-01
        • 2016-08-14
        • 2011-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多