我需要在使用SharePoint API的左側當前導航欄中刪除大量默認節點(即人員和組,站點)。任何人都可以給我任何指導如何實現這一目標?通過SharePoint API自定義當前導航
感謝,MagicAndi
我需要在使用SharePoint API的左側當前導航欄中刪除大量默認節點(即人員和組,站點)。任何人都可以給我任何指導如何實現這一目標?通過SharePoint API自定義當前導航
感謝,MagicAndi
您的代碼將是這個樣子:
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
:
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
}
}
本文也是有用:
naivists,謝謝,看起來很有希望。 +1 – MagicAndi 2010-01-12 13:19:14
naivists,接受爲答案。 – MagicAndi 2010-01-13 11:06:28