我需要使用SharePoint API删除左侧当前导航栏中的许多默认节点(即人员和组,网站)。任何人都可以给我任何指导如何实现这一目标?
谢谢,MagicAndi
答案 0 :(得分: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找到节点会更好。请在此处查看ID - http://msdn.microsoft.com/en-us/library/dd587301(office.11).aspx
答案 1 :(得分:1)
基于naivists的回答:
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
}
}
这篇文章也很有用: