Я работаю с фондом SP2010, но я не думаю, что многое изменилось после WSS3.
Я пытаюсь создать собственное меню для базового проекта, это то, что я до сих пор.
static void Main(string[] args)
{
using (SPSite site = new SPSite("http://localhost:3002/"))
{
SPNavigation nav =site.RootWeb.Navigation;
//gets the correct order of top level menu items
SPNavigationNodeCollection nodes = nav.TopNavigationBar;
using (SPWeb web = site.OpenWeb())
{
SPNavigationNode toplinkbar = web.Navigation.GetNodeById(1002);
if (toplinkbar != null)
{
foreach (SPNavigationNode node in toplinkbar.Children)
PrintNode(node);
}
}
}
Console.Write("\nPress ENTER to continue....");
Console.ReadLine();
}
static void PrintNode(SPNavigationNode node)
{
Console.WriteLine(node.Title);
foreach (SPNavigationNode item in node.Children)
PrintNode(item);
}
Итак, первая часть toplinkbar.Children работает правильно, однако цикл foreach в узле PrintNode. Дети всегда возвращают 0, когда я знаю, что на сайте есть дочерние сайты.
Должен ли я получитьдочерние сайты, использующие SPSiteMapProvider?
Любая помощь будет отличной, так как это сводит меня с ума!