Динамически добавлять / удалять пункты меню в ASP.NET? - PullRequest
2 голосов
/ 20 апреля 2011

У меня есть элемент управления меню (Menu1), и я хочу добавить / удалить элементы из меню на основе определенной информации, которую я сохранил о аутентифицированном пользователе в базе данных.Однако я не уверен, как получить доступ к определенным пунктам меню из элемента управления меню и удалить их во время выполнения?

Ответы [ 3 ]

2 голосов
/ 20 апреля 2011

ASP.NET меню могут быть доступны через код позади. Доступ к меню, объявленному в разметке, например, с идентификатором «Menu1», может быть следующим:

  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 голосов
/ 05 июня 2012
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 голосов
/ 21 апреля 2011

Хотелось бы, чтобы вы были более конкретны, но я знаю, что уведомление для комментариев здесь отстой.так что если бы вы могли сказать мне точно

  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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...