Как получить узлы сайтов в topnavbar в sharepoint 2010? - PullRequest
1 голос
/ 02 февраля 2011

У меня есть сайт с именем MySite на этом сайте. У меня есть библиотека документов с именем Resources и два дочерних сайта с именами site1 и site2.

На MySite у меня есть верхняя панель навигации со ссылками: MySite |Ресурсы |Сайт1 |Site2

Когда я пытаюсь получить навигационные узлы, я получаю только один из них, и это Ресурсы (я хочу получить site1 и site2, чтобы я мог их изменить).Как получить все узлы, независимо от того, является ли это библиотекой документов или дочерним сайтом?

Код, который я использую:

SPNavigationNodeCollection topNavBar = parentID.Navigation.TopNavigationBar;
string nodes ="";
foreach (SPNavigationNode node in topNavBar)
{
nodes += node.Url.ToString();
}

label1.Text = nodes;

Почему я получаю только узел ресурсов?

РЕДАКТИРОВАТЬ Я могу добавить правильную ссылку на родительский сайт с помощью

newWeb.ParentWeb.Navigation.TopNavigationBar.AddAsLast (new SPNavigationNode (newSiteName, newSiteName + "/pages/home.aspx").));

теперь я попаду в вики, и поскольку дочерние сайты наследуют навигацию, ссылка на них будет одинаковой.Тем не менее, с этим я получаю две ссылки на вики, одну, которая работает с приведенным выше кодом, и другую, которая не работает, поэтому я пытаюсь удалить эту аналогично тому, как я добавляю правильную.Я надеюсь, что будет более удобный способ сделать это.

1 Ответ

1 голос
/ 02 февраля 2011

Я думаю Ресурсы | Сайт1 | Site2 - это семейства сайтов. Чтобы получить все семейство сайтов, используйте следующий код:

SPSite site = new SPSite("siteURL");
SPWeb web = site.OpenWeb();
SPSiteCollection coll = web.webs;

Вы получаете все семейство сайтов Ресурсы, Сайт1, Сайт2 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...