我有一个包含各种变体的Sharepoint发布网站。 默认情况下,面包屑显示:
变异根>英文网站>一些页面 我想要展示的是: “家”>一些页面,其中Home指向英文站点根目录。
如果没有创建自定义服务器控件来实现这一点,有没有办法实现这一目标?
答案 0 :(得分:2)
如果您知道可以使用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>
如果说明的值为“Home”,则会显示。
答案 1 :(得分:0)
就在最近,我创建了几个新的菜单控件来解决这个问题。我的控件接受自定义〜变体/标记作为StartingNode,以便您可以创建以变体的主页而不是网站集的根目录开头的面包屑。 您可以在http://blog.mastykarz.nl/templates-based-menu-control-sharepoint/
找到更多信息