Я работаю над пользовательской текущей (левой) навигацией в решении 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
почти бесконечный StaticDisplayLevels
, а затем расширил PortalSiteMapProvider
, переопределяя GetChildNode(node)
на , а не , чтобы получить дочерние узлы, кроме предков текущей сети.