Возможно ли создать подменю программно в c #?

#asp.net #c#-4.0

#asp.net #c #-4.0

Вопрос:

На моей странице есть кнопки вверху. Я хотел бы добавить подменю к этим кнопкам:

 protected void AddMenuItems()
{
    // Check privledges and add links to admin pages accordingly.
    // List adds pages in order of user precedence.


    if (_cu.IsUser)
    {
       NavigationMenu.Items.Add(new MenuItem("Generate UserIDs", "Generate UserIDs", null, "~/GenPrefixList.aspx"));
    }
}
  

Есть ли способ, которым я могу добавить подменю к пункту?

Ответ №1:

Да, у каждого MenuItem есть ChildItems коллекция, в которую вы можете добавить неопределенное количество элементов.

 protected void AddMenuItems()
{
    // Check privledges and add links to admin pages accordingly.
    // List adds pages in order of user precedence.


    if (_cu.IsUser)
    {
       var newItem = new MenuItem("Generate UserIDs", "Generate UserIDs", null, "~/GenPrefixList.aspx");
       var subItem = new MenuItem("Sub Menu Item", "Submenu Item", null, "page.aspx");
       newItem.ChildItems.Add(subItem);
       NavigationMenu.ChildItems.Add(newItem);
    }
}
  

«Пункт подменю» будет дочерним элементом «Geneate UserIds», который является дочерним элементом меню навигации.

Обновление: Items Ссылка в вашем коде должна быть ChildItems . Items используется ли коллекция для меню приложений Windows; вы добавили ASP.NET тег итак, я предполагаю, что это веб-приложение.

Комментарии:

1. ‘System.Web.UI.WebControls. MenuItem’ не содержит определения для ‘Items’ и никакого метода расширения ‘Items’, принимающего первый аргумент типа ‘System.Web.UI.WebControls. Удалось найти MenuItem’ (вам не хватает директивы using или ссылки на сборку?)

2. … вы делаете это в конструкторе форм или ASP.NET ? Если ASP.NET , затем удалите System.Windows.Forms.MenuItem ссылку. Я скопировал ваш код, но в этом случае Items должно быть ChildItems .