Все знают меню быстрого запуска. Вот оно:

Когда Вы создаете, например, страницу веб частей:

Вы можете обнаружить, что меню исчезло:

Вы можете открыть SharePoint Designer 2010 и вернуть меню:

Изменение в расширенном режиме позволяет отредактировать разметку страницы, а не только свойства веб частей.

Вам необходимо в первую очередь удалить переопределенный блок с меню:

<asp:Content ContentPlaceHolderId="PlaceHolderLeftNavBar" runat="server"></asp:Content>

В оригинале, на мастер странице в нем содержалось меню с картой сайта.

Во-вторых, необходимо удалить CSS стили, которые прячут меню:

<SharePoint:UIVersionedContent ID="WebPartPageHideQLStyles" UIVersion="4" runat="server">

<ContentTemplate>

<style type="text/css">

body #s4-leftpanel {

display:none;

}

.s4-ca {

margin-left:0px;

}

</style>

</ContentTemplate>

</SharePoint:UIVersionedContent>

 

В процессе сохранения изменений Вы увидите диалог, Вам придется согласиться:

Раньше страница базировалась на шаблоне, которым пользовались все сайты и веб сервер обращался к файловой системе за страницей, что было быстро. Теперь измененный контент копируется в БД и каждый раз при запросе страницы будет оттуда запрашиваться, что не способствует производительности. Поэтому лучше упаковать страницу в решение Visual Studio и развертывать как модуль внутри возможности (feature).

Вот результат (меню на месте):

Если же Вы захотите наоборот убрать меню со страницы, то придется проделать обратную операцию – добавить блоки:

<asp:Content ContentPlaceHolderId="PlaceHolderLeftNavBar" runat="server"></asp:Content>

Второй блок нужно вставить внутрь PlaceHolderAdditionalPageHead:

<asp:Content ContentPlaceHolderId="PlaceHolderAdditionalPageHead" runat="server">

<SharePoint:UIVersionedContent ID="WebPartPageHideQLStyles" UIVersion="4" runat="server">

<ContentTemplate>

<style type="text/css">

body #s4-leftpanel {

display:none;

}

.s4-ca {

margin-left:0px;

}

</style>

</ContentTemplate>

</SharePoint:UIVersionedContent>

</asp:Content>

Вот как может после этого выглядеть страница Домашняя.aspx:

Можно передвинуть меню вправо используя CSS стили.

<asp:Content ContentPlaceHolderId="PlaceHolderAdditionalPageHead" runat="server">

<style>

#s4-leftpanel{

float:right !important;

}

.s4-ca{

margin-left:0px !important;

margin-right:155px !important;

}

#s4-leftpanel-content{

border-left:#dbddde 1px solid !important;

}

</style>

</asp:Content>

 

Это можно делать на отдельных страницах или в мастер странице чтобы применить ко всему сайту, а также в отдельном CSS файле.

Меню можно сделать выпадающим:

<SharePoint:UIVersionedContent UIVersion="4" runat="server">

<ContentTemplate>

<SharePoint:AspMenu id="V4QuickLaunchMenu" runat="server" EnableViewState="false" DataSourceId="QuickLaunchSiteMap" UseSimpleRendering="True" UseSeparateCss="false" Orientation="Vertical" MaximumDynamicDisplayLevels="1" SkipLinkText="" CssClass="s4-ql" />

</ContentTemplate>

</SharePoint:UIVersionedContent>

 

Для этого нужно в мастер странице найти объект SharePoint:AspMenu и задать значение свойства MaximumDynamicDisplayLevels="1"

Обязательно найдите меню для 4-ой версии интерфейса.

Правда, при этом Вы можете столкнуться с проблемами отображения выпадающего меню:

Вам придется отключить стандартные стили меню путем установки свойства UseSimpleRendering:

<SharePoint:AspMenu id="V4QuickLaunchMenu" runat="server" EnableViewState="false" DataSourceId="QuickLaunchSiteMap" UseSimpleRendering="False" UseSeparateCss="false" Orientation="Vertical" MaximumDynamicDisplayLevels="1" SkipLinkText="" CssClass="s4-ql" />

 

Далее нужно будет сделать свои классы CSS или воспользоваться существующими.

До применения упрощенного форматирования:

После применения упрощенного форматирования:

Как видите, теперь применяется более тяжелая табличная верстка характерная для старого asp:menu.

Можно также задать 1 стиль, чтобы избежать переформатирования всех стилей:

<asp:Content ContentPlaceHolderId="PlaceHolderAdditionalPageHead" runat="server">

<style>

ul.root li.static ul.dynamic {

background-color:white;

z-index:1000;

border:#dbddde 1px solid;

}

</style>

</asp:Content>

 

Изучайте меню и CSS:

Меню в SharePoint - http://msdn.microsoft.com/en-us/library/ms466994.aspx

Меню в ASP.NET - http://msdn.microsoft.com/EN-US/library/07b8w058(v=VS.90)

CSS - http://msdn.microsoft.com/en-us/library/ms531209(v=vs.85).aspx

 

Заинтересовались? Приходите на курс по брэндингу SharePoint 2010 - http://www.sharepoint2010.ru/page/iw1005.aspx

Удачи!