我想要做的是在sharepoint 2010上拆分globalnavigation栏,这样我就可以控制哪些菜单项应该浮动到栏的左侧或右侧。
如果没有完整的自定义版本,有没有办法做到这一点,所以我只需要编辑当前版本。或者我真的需要制作一个全新的吗?
到目前为止,我所尝试的只是复制所有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>
但它似乎没有触发下拉功能。可能只是一个天真的尝试。
有关此主题的指南或教程的任何链接都将是一个很大的帮助。
答案 0 :(得分:5)
以下是链接博客帖子的内容。
以供将来参考这使用了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样式,您还可以创建所需的每个菜单。