【问题标题】:Customizing breadcrumb in sharepoint publishing site with variations在具有变体的共享点发布站点中自定义面包屑
【发布时间】:2009-06-16 15:00:40
【问题描述】:

我有一个带有变体的 Sharepoint 发布网站。 默认情况下,面包屑显示如下:

Variation Root > English Site > Some Page 我要显示的是: "Home" > Some Page,Home 指向英文站点的根目录。

有没有办法在不创建自定义服务器控件的情况下实现这一点?

【问题讨论】:

    标签: sharepoint moss navigation breadcrumbs


    【解决方案1】:

    如果您知道确切的级别数,则可以使用 SiteMapPath,例如:

    <asp:SiteMapPath runat="server" ParentLevelsDisplayed="1" />
    

    否则,SiteMapPath 总是直接与当前使用的 SiteMapProvider 相匹配,您可能可以挂钩到 SiteMapPath 的呈现并进行检查,例如:

    protected void SiteMapPath_ItemCreated(object sender, SiteMapNodeItemEventArgs e)
    {
        if (e.Item.ItemType == SiteMapNodeItemType.Root ||         
           (e.Item.ItemType == SiteMapNodeItemType.PathSeparator && 
            e.Item.ItemIndex == 1))
        {
            e.Item.Visible = false;
        }
    }
    

    这将使您的 SiteMapPath 不显示根节点(和第一个分隔符)。

    如果希望您的节点显示“主页”,您可以绑定另一个值,例如:

    <asp:SiteMapPath ID="siteMapPath" runat="server"
        Pathseparator="/"
        OnItemCreated="SiteMapPath_ItemCreated">
    
    <NodeTemplate>
        <a href='<%# Eval("url") %>'><%# Eval("description") %></a>
    </NodeTemplate>
    
    <CurrentNodeTemplate>
        <%# Eval("title") %>
    </CurrentNodeTemplate>    
    
    </asp:SiteMapPath>
    

    如果描述的值为“Home”,则会显示。

    【讨论】:

    • 我不知道确切的级别数如何仅删除根元素?
    【解决方案2】:

    就在最近,我创建了几个新的菜单控件来解决这个问题。我的控件接受自定义 ~Variation/ 标记作为 StartingNode,以便您可以创建一个面包屑,该面包屑从您的变体的主页而不是您的网站集的根开始。 您可以找到更多信息@http://blog.mastykarz.nl/templates-based-menu-control-sharepoint/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-25
      • 1970-01-01
      • 2011-07-02
      • 2012-04-12
      • 2011-12-07
      • 2011-04-29
      • 2020-10-25
      相关资源
      最近更新 更多