首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从QuickLaunch中删除所有节点

从QuickLaunch中删除所有节点
EN

Stack Overflow用户
提问于 2014-02-17 12:09:35
回答 1查看 390关注 0票数 1

这是我删除QuickLaunch导航节点的代码。我正在使用SharePoint 2013。

代码语言:javascript
复制
                public void 2013NodeOrders(string siteUrl, string quickLaunch)
            { 
            SPSecurity.RunWithElevatedPrivileges(() =>
                        {
                            using (var localWeb = new SPSite(siteUrl).OpenWeb())
                            {
                                try
                                {
                                    var ql = localWeb.Navigation.QuickLaunch;
                                    int count = 0;
                                    while (count++ < 10)
                                    {
                                        try
                                        {
                                            CleanUpAutoCreatedNodes(ql, nodeNames.ToArray());
                                            break;
                                        }
                                        catch (Exception ex)
                                        {}
                                    }
                                   localWeb.Update();
                                }
                                catch (Exception ex)
                                {
                                   Console.WriteLine("Error Occoured ", ex);
                                    throw ex;
                                }
                            }
                        });
            }

            private static void CleanUpAutoCreatedNodes(SPNavigationNodeCollection ql, string[] nodenames)
                    {
                        foreach (SPNavigationNode globalNode in ql)
                        {
                            if (Array.IndexOf(nodenames, globalNode.Title) == -1) 
                            {
                                if (globalNode.Children.Count > 0)
                                {
                                    foreach (SPNavigationNode childNode in globalNode.Children)
                                        childNode.Delete();
                                }
                                if (!globalNode.Title.Equals("Site Contents"))
                                    globalNode.Delete();
                            }
                        }
                    }

foreach (SPNavigationNode globalNode in ql)foreach (SPNavigationNode childNode in globalNode.Children)中得到以下COM异常错误

错误消息:无法完成此操作。请再试一次

代码语言:javascript
复制
Stacktrace Error 

   at Microsoft.SharePoint.Library.SPRequestInternalClass.GetNavigationNodeChild(String bstrUrl, Int32 lParentId, Int32 lIndex, Int32& lNodeId, String& pbstrNodeUrl, String& pbstrName, String& pbstrNameResource, String& pbstrDateModified, Int32& pbIsVisible, Int32& pbIsExternal, Int32& plNumChildren, Guid& pgScopeId, Int32& plParentObjectType)
   at Microsoft.SharePoint.Library.SPRequest.GetNavigationNodeChild(String bstrUrl, Int32 lParentId, Int32 lIndex, Int32& lNodeId, String& pbstrNodeUrl, String& pbstrName, String& pbstrNameResource, String& pbstrDateModified, Int32& pbIsVisible, Int32& pbIsExternal, Int32& plNumChildren, Guid& pgScopeId, Int32& plParentObjectType)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-18 12:23:21

您是否知道可以从SharePoint设计器中删除导航节点?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21828742

复制
相关文章

相似问题

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