获取所有网站集和网站的当前导航项目 - SP2010

时间:2011-02-15 18:21:37

标签: sharepoint sharepoint-2007 sharepoint-2010

我正在尝试为Sharepoint 2010制作一个站点地图,列出每个站点和该站点的当前导航项。站点之间的导航通过顶部导航完成。但是,我在获取每个站点的当前导航项时遇到问题。似乎每次我获得Web的PortalSiteMapProvider时,它都会返回整个网站集的提供者。如何获取该网站的商品?我为每个想要获取项目的网站运行此代码:

var provider = new PortalSiteMapProvider();
provider.NavigationType = PortalNavigationType.Current;
provider.CurrentWeb = web;
var rootNode = provider.RootNode;

任何人都知道从哪里开始?

编辑: 因此,无法访问每个网站集并运行此代码。 PortalSiteMapProvider不允许它。但是,可以在位于layouts文件夹中的ashx中运行此代码。我只需要从我想要枚举的网站集中访问该ashx文件,它就可以正常工作:)

2 个答案:

答案 0 :(得分:0)

    private void DrawWeb(SPWeb web, TreeNode node)
        {
            SPWebCollection webCol = web.Webs;
            foreach (SPWeb w in webCol)
            {
                var n = new TreeNode(w.Title);
                node.ChildNodes.Add(n);
                DrawWeb(w, n);
                w.Dispose();
            }
        }

尝试调用此方法,如:

TreeNode webNode = new TreeNode(rootNode.Title);
DrawWeb(provider.CurrentWeb, webNode);

希望这会有所帮助。

答案 1 :(得分:0)

因此无法访问每个网站集并运行此代码。 PortalSiteMapProvider不允许它。但是,可以在位于layouts文件夹中的ashx中运行此代码。我只需要从我想要枚举的网站集中访问该ashx文件,它就可以正常工作:)