以编程方式创建/维护SharePoint Quick Launch菜单的最佳方法

时间:2011-02-18 13:20:32

标签: sharepoint sharepoint-2010 navigation

我们有一个部署了许多列表和页面的解决方案。当激活某个功能时,我们不会自动在“快速启动”菜单上为它们创建链接。

结构可能是这样的。

  • 客户
    • 有效
    • 无效
  • 销售
    • 行情
    • 订单

等等。网站集管理员可能会在“活动”和“非活动”链接之间添加另一个链接。当该功能被停用时,我不想删除这些项目,但如果再次激活该功能,我不希望再次添加导航:)

是否有可以使用的内置API?我知道SPWeb.Navigation.QuickLaunch和SPNavigationNode(Collection)结构等。但还有另一种方法吗?

希望你能提供帮助:)

1 个答案:

答案 0 :(得分:5)

您还会寻找其他什么样的方式?

    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不会让你这么做,我可能会有更多的帮助