Как: управлять SharePoint: управление AspMenu (в стиле) - PullRequest
2 голосов
/ 23 марта 2011

Что я хочу сделать, это разделить глобальную навигационную панель на sharepoint 2010, чтобы я мог контролировать, какие пункты меню следует перемещать влево или вправо от панели.

Есть ли способ сделать это без полной настроенной версии, поэтому мне нужно только отредактировать текущую. Или я действительно должен сделать совершенно новый?

То, что я до сих пор пробовал, это просто копирование всех UL> LI, которые используются для отображения пунктов меню, таких как:

<div class="s4-tn">
    <div class="menu horizontal menu-horizontal">
        <ul class="static">
            <li class="static dynamic-children">
                <a href="#" CssClass="static dynamic-children menu-item">
                    <span class="additional-background">
                        <span class="menu-item-text">Custom Dropdown</span>
                    </span>
                </a>
                <ul class="dynamic">
                    <li class="dynamic">
                        <a href="#" class="dynamic menu-item">
                            <span class="additional-background">
                                <span class="menu-item-text">Test subsite</span>
                            </span>
                        </a>
                    </li>
                </ul>
            </li>
        </ul>
    </div>
</div>

Но, похоже, он не вызывает раскрывающуюся функцию. Это может быть просто наивная попытка.

Любые ссылки на руководства или учебные материалы по этой теме будут очень полезны.

1 Ответ

5 голосов
/ 23 марта 2011

Для дальнейшего использования, вот содержание из связанного поста в блоге.

Здесь используется asp: Repeater вместо sharepoint: AspMenu, так как первый позволяет намного чище html и улучшать стилизацию. Также я создал несколько источников данных на главной странице, которые возвращают правильные элементы, которые мне нужно отобразить.

<asp:Repeater ID="TopMenu" runat="server" DataSourceID="selectedSiteMap">
        <HeaderTemplate>
            <ul id="main_menu_ul" class="">
        </HeaderTemplate>
        <ItemTemplate>
            <li><a href="<%# Eval("Url")%>" class="link">
                <%# Eval("Title")%></a></li>
        </ItemTemplate>
        <FooterTemplate>
            </ul>
        </FooterTemplate>
    </asp:Repeater>
    <asp:SiteMapDataSource SiteMapProvider="CombinedNavSiteMapProvider" ShowStartingNode="false"
        StartFromCurrentNode="false" StartingNodeOffset="0" StartingNodeUrl="sid:1002"
        EnableViewState="true" ID="selectedSiteMap" runat="server" />

Я выяснил, какие источники данных использовать с небольшой помощью этого поста: http://ktskumar.wordpress.com/2008/04/14/sharepoint-navigation-providers-part-1/ Они перечислены для SharePoint 2007, но большинство работают и на 2010 год.

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

...