我有一个带有变体的 Sharepoint 发布网站。默认情况下,面包屑显示如下:
Variation Root > English Site > Some Page 我要显示的是:“Home” > Some Page,其中 Home 指向英文站点根目录。
有没有办法在不创建自定义服务器控件的情况下实现这一点?
我有一个带有变体的 Sharepoint 发布网站。默认情况下,面包屑显示如下:
Variation Root > English Site > Some Page 我要显示的是:“Home” > Some Page,其中 Home 指向英文站点根目录。
有没有办法在不创建自定义服务器控件的情况下实现这一点?
如果您知道确切的级别数,则可以使用 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 不显示根节点(和第一个分隔符)。
如果希望您的节点显示“Home”,您可以绑定另一个值,例如:
<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>
如果 description 的值为“Home”,则将显示该值。
就在最近,我创建了几个新的菜单控件来解决这个问题。我的控件接受自定义 ~Variation/ 标记作为 StartingNode,以便您可以创建一个面包屑,该面包屑从您的变体的主页而不是您的网站集的根开始。你可以找到更多信息@http://blog.mastykarz.nl/templates-based-menu-control-sharepoint/