首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过SharePoint应用编程接口自定义当前导航

通过SharePoint应用编程接口自定义当前导航
EN

Stack Overflow用户
提问于 2010-01-12 20:10:53
回答 2查看 1.4K关注 0票数 2

我需要使用SharePoint应用编程接口删除左侧当前导航栏中的一些默认节点(即人员和组、站点)。有谁能给我一些关于如何实现这一点的指导吗?

谢谢,MagicAndi

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-12 20:38:19

您的代码将如下所示:

代码语言:javascript
复制
using (SPSite oSite= new SPSite("http://someurl/")){
    using (SPWeb oWeb = oSite.OpenWeb()){
        foreach (SPNavigationNode oNode in oWeb.Navigation.QuickLaunch)
        {
            if (oNode.Title == "Sites") {
                oNode.Delete();
            }
        }    
    }
}

不过,请注意,根据标题查找项目并不是很推荐-如果网站的语言环境不是英语,则会有所不同。因此,更好的做法是通过ID查找节点。

票数 1
EN

Stack Overflow用户

发布于 2010-01-12 23:18:02

基于naivists的回答:

代码语言:javascript
复制
public static void DeleteNavigationNodes(string p_sSiteUrl)
{
    try
    {
        SPSecurity.RunWithElevatedPrivileges(delegate()
        {
            using (SPSite site = new SPSite(p_sSiteUrl))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    PublishingWeb pubWeb = null;
                    if (PublishingWeb.IsPublishingWeb(web))
                    {
                        pubWeb = PublishingWeb.GetPublishingWeb(web);

                        foreach (SPNavigationNode node in pubWeb.CurrentNavigationNodes)
                        {
                            if ((node.Id != 1003 ) && (node.Id != 1004 ))
                            {
                                node.Delete();
                            }
                        }

                        pubWeb.Update();           
                    }
                }
            }
        });
    }
    catch (Exception ex)
    {
        // Log error
     }
}

这篇文章也很有用:

  • Current Navigation, SPNavigationNodes and the AreaNavigationSettings page
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2048745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档