PotalSiteMapProvider не возвращает страницы - PullRequest
0 голосов
/ 23 мая 2011

PotalSiteMapProvider не возвращает страницы. Я использую код следующим образом:

        PortalSiteMapProvider prov = PortalSiteMapProvider.CurrentNavSiteMapProviderNoEncode;
        prov.DynamicChildLimit = 0;
        prov.IncludeSubSites = PortalSiteMapProvider.IncludeOption.Always;
        prov.IncludePages = PortalSiteMapProvider.IncludeOption.Always;
        prov.IncludeHeadings = true;
        prov.IncludeAuthoredLinks = true;
        SiteMapNode root = prov.RootNode;

        //prov.IncludePages = PortalSiteMapProvider.IncludeOption.Always;
        SiteMapNodeCollection collection = prov.GetChildNodes(root);


        foreach (SiteMapNode thisNode in collection)
        {
            SiteMapNodeCollection thisCollection;
            if (thisNode.GetType() == typeof(PortalWebSiteMapNode))
            {
                prov.IncludePages = PortalSiteMapProvider.IncludeOption.Always;
                thisCollection = prov.GetChildNodes((PortalWebSiteMapNode)thisNode);
            }
        }

Когда я смотрю через отладчик, thisCollection никогда не имеет дочерних элементов, хотя thisNode - это узел SubSite, в котором есть страницы. Что я делаю не так и как я могу получить страницы, которые находятся в этом узле? Спасибо!

1 Ответ

0 голосов
/ 04 июня 2011

Это код, который я использовал в проекте некоторое время назад.Мне показалось, что я правильно вытащил подстраницы.

PortalSiteMapProvider portalProvider = (PortalSiteMapProvider)SiteMap.Providers["CurrentNavSiteMapProviderNoEncode"];
PortalSiteMapNode currentNode = portalProvider.CurrentNode as PortalSiteMapNode;
foreach (SiteMapNode childNode in currentNode.ChildNodes) {
   ...
}
...