Лучший способ программно создавать / поддерживать меню быстрого запуска SharePoint - PullRequest
2 голосов
/ 18 февраля 2011

У нас есть решение, которое развертывает несколько списков и страниц.Мы не хотим создавать ссылки для них в меню быстрого запуска при активации функции.

Структура может выглядеть примерно так.

  • Клиенты
    • Активные
    • Неактивные
  • Продажи
    • Котировки
    • Заказы

И так далее.Администратор семейства сайтов может добавить еще одну ссылку между ссылками «Активная» и «Неактивная».Когда функция деактивирована, я не хочу удалять элементы, но если функция активируется снова, я не хочу, чтобы навигация была добавлена ​​снова:)

Есть ли встроенный API, который вы можетеиспользовать?Я знаю о SPWeb.Navigation.QuickLaunch и структуре SPNavigationNode (Collection) и т. Д. Но есть ли другой способ?

Надеюсь, вы можете помочь:)

1 Ответ

5 голосов
/ 28 февраля 2011

Какой другой способ вы бы искали?

    public override void FeatureActivated(SPFeatureReceiverProperties properties)
    {
        SPWeb web = (SPWeb)properties.Feature.Parent; 

    // Check for an existing link to the list.
        SPNavigationNode listNode = web.Navigation.GetNodeByUrl(list.DefaultViewUrl); 

    // No link, so create one.
        if (listNode == null)
        {     
              // Create the node.
              listNode = new SPNavigationNode(list.Title, list.DefaultViewUrl);
              // Add it to Quick Launch.
              web.Navigation.AddToQuickLaunch(listNode, SPQuickLaunchHeading.Lists);
        }
    }

Мы какое-то время использовали описанный выше метод, и он работает нормально.

Если вы можете дать мне знать, что вы пытаетесь совершить, манипулируя SPWeb.Navigation, я не смогу помочь вам

...