2011-03-23 129 views
2

我想要做的是分离SharePoint 2010上的globalnavigation栏,以便我可以控制哪些菜单项应该浮动到左侧或右侧酒吧。如何:Manupilate SharePoint:AspMenu控制(风格明智)

有没有办法做到这一点,没有一个完整的自定义版本,所以我只需要编辑当前的一个。或者我真的不得不做一个完整的新的?

我至今试图只是复制所有的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

我做了类似的事情,但没有使用Sharepoint:AspMenu,但开始使用中继器。你仍然可以使用相同的数据源,或添加一些新的。一个链接(2007)datasouces可用:http://ktskumar.wordpress.com/2008/04/14/sharepoint-navigation-providers-part-1/并不是所有的人都在2010年工作。希望它有点帮助。 (编辑:可以添加一个链接到我的博客帖子,但它是荷兰人,所以可能不会帮你很多) – 2011-03-23 11:46:29

+0

@Jan_V如果你是博客包含代码块关于这个,我非常想看到它反正。任何可能帮助我朝正确方向发展的东西都会很有帮助。 – diceler 2011-03-23 13:20:53

+1

那么,在这种情况下,这里是链接:http://www.jan-v.nl/branding-styling-het-sharepoint-2010-menu – 2011-03-23 13:47:10

回答

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的样式,你可以创建你想要的每个菜单。

+0

在SharePoint 2010中,(v4)AspMenu输出也“非常干净”;它的优点是它已经用所有标准的SP(v4)CSS类来注释样式。对于SharePoint 2007 OOB而言,这是不能说的。 – 2012-05-04 01:27:23

+0

好方法。有一件事要注意的是,当你着手这个问题时,你将需要在单独的控制B/C主页面默认不建立代码块。 – Roman 2014-08-19 23:31:56