如何:操作SharePoint:AspMenu控件(样式方式)

时间:2011-03-23 11:12:40

标签: asp.net css sharepoint-2010 web-controls

我想要做的是在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>

但它似乎没有触发下拉功能。可能只是一个天真的尝试。

有关此主题的指南或教程的任何链接都将是一个很大的帮助。

1 个答案:

答案 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样式,您还可以创建所需的每个菜单。