2014-02-17 76 views
1

这是我的代码,用于删除QuickLaunch导航节点。 我使用SharePoint 2013从QuickLaunch中删除所有节点

   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(); 
          } 
         } 
        } 

我得到了以下COM异常错误从线的foreach(SPNavigationNode globalNode在QL)的foreach(SPNavigationNode childNode在globalNode.Children)

错误消息: 无法完成此操作。 请尽量again.0x80004005

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) 

回答

0

你知道,你可以删除从SharePoint Designer中的导航节点?