我需要使用SharePoint应用编程接口删除左侧当前导航栏中的一些默认节点(即人员和组、站点)。有谁能给我一些关于如何实现这一点的指导吗?
谢谢,MagicAndi
发布于 2010-01-12 20:38:19
您的代码将如下所示:
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();
}
}
}
}不过,请注意,根据标题查找项目并不是很推荐-如果网站的语言环境不是英语,则会有所不同。因此,更好的做法是通过ID查找节点。
发布于 2010-01-12 23:18:02
基于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
}
}这篇文章也很有用:
https://stackoverflow.com/questions/2048745
复制相似问题