Я работаю над пользовательской текущей (левой) навигацией в решении SharePoint.
Что мне нужно, так это то, что корень навигации - это веб-вариант, непосредственный ребенок корневой сети. Все сайты и страницы, которые являются непосредственными детьми этого варианта, должны быть видны, хотя и не расширены. Только сайты, которые являются предками текущего сайта, должны быть расширены... вплоть до текущего сайта/страницы.
Пример... если я начну на странице http://spsite.ex/variation/site2/subsite2.1/subsite2.1.1/subsite2.1.1.3/page.aspx
, я должен увидеть...
Site1
Site2
SubSite2.1
SubSite2.1.1
SubSite2.1.1.1
SubSite2.1.1.2
SubSite2.1.1.3
page.aspx (YOU ARE HERE)
SubSite2.2
Site2Page1
Site2Page2
Site3
Site4
Site5
Если я затем нажимаю ссылку для SubSite2.1
, я должен увидеть что-то вроде...
Site1
Site2
SubSite2.1 (YOU ARE HERE)
SubSite2.1.1
SubSite2.2
Site2Page1
Site2Page2
Site3
Site4
Site5
Если я затем перейду к http://spsite.ex/variation/site5/subsite5.1/page.aspx
, я должен увидеть что-то вроде...
Site1
Site2
Site3
Site4
Site5
SubSite5.1
SubSite5.1.1
page.aspx (YOU ARE HERE)
Я написал решение, но мне кажется, что я не горжусь этим; Я дал AspMenu
почти-inifinite StaticDisplayLevels
, а затем расширил PortalSiteMapProvider
, переопределив GetChildNode(node)
, чтобы не получить дочерние узлы, за исключением предков текущей сети.