2010-01-12 48 views

回答

1

您的代碼將是這個樣子:

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

知道,雖然,通過標題找到該項目不是很推薦 - 如果web'b會有所不同語言環境不是英語。因此,通過ID來查找節點會更好。見標識在這裏 - 基於naivists的回答http://msdn.microsoft.com/en-us/library/dd587301(office.11).aspx

+0

naivists,謝謝,看起來很有希望。 +1 – MagicAndi 2010-01-12 13:19:14

+0

naivists,接受爲答案。 – MagicAndi 2010-01-13 11:06:28

1

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 
    } 
} 

本文也是有用: