【发布时间】:2015-01-09 15:15:40
【问题描述】:
我的页面文件夹层次结构是(它们都在同一个文件夹中):
Site.Master
Default.aspx
find_provider.aspx
provider.aspx
我设置了一个Web.sitemap 页面:
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="~/Default.aspx" title="Home" description="Homepage">
<siteMapNode url="~/find_provider.aspx" title="Provider" description="Search for provider">
<siteMapNode url="~/provider.aspx" title="Profile" description="Shows each provider profile" />
</siteMapNode>
</siteMapNode>
</siteMap>
我正在调用我的 MasterPage:
<div id="navigation">
<ul>
<li><asp:HyperLink runat="server" ID="lnkHome" NavigateUrl="~/Default.aspx">Home</asp:HyperLink></li>
<asp:Repeater runat="server" ID="menu" DataSourceID="SiteMapDataSource1">
<ItemTemplate>
<li>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("Url") %>'><%# Eval("Title") %></asp:HyperLink>
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" ShowStartingNode="false" />
</div>
所以Default.aspx 是我的登陆页面。用户可以点击find_provider.aspx 搜索他们选择的提供商。对于每个供应商的搜索结果,用户可以点击 PROFILE 链接来查看每个供应商的信息,即provider.aspx 页面。
所以:
- 如果我在主页上,我的面包屑应该是:
Home - 如果我在查找提供商页面上,我的面包屑应该是:
Home Provider - 如果我在个人资料页面上,我的面包屑应该是:
Home Provider Profile
相反,我在我的页面上看到了这个(无论我在哪个页面):
请帮我修改代码,以便为每个站点节点和子站点节点显示面包屑。
我想要实现的示例:
HTML:
<div class="bcHolder brClear"> <!-- BC MAIN -->
<div class="innerBreadCrumb"> <!-- INNER BC -->
<ul id="breadcrumb">
<li><a href="default.aspx" title="Home"><img src="theImages/homeIcon.gif" alt="Home" title="Home" class="home" /></a></li>
<li id="bc_fp"><a href="find_provider.aspx" title="Find a Provider">Find a Provider</a></li>
<!--<li>{ON THE CURRENT PAGE TEXT/URL</li>-->
</ul>
</div> <!-- INNER BC -->
</div> <!-- BC MAIN -->
输出:
【问题讨论】:
-
这实际上并不难,这里有一个关于如何做到这一点的教程。我个人使用 MasterPage 创建了我自己的页面,并跟踪了我所在的页面 + 我导航到所有代码的页面是在 MasterPage 级别完成的..有很多方法可以给这只猫剥皮..Asp.NET BreadCrub
-
谢谢。我已经检查了页面。定制非常有限。我希望按照我在问题中显示的方式进行操作(已更新)
-
您可以在母版页上创建一个标签,然后像我之前所说的那样从母版页中以这种方式显示它。您将需要编写 1 或 2 个方法来执行此操作以及一些 Switch case 语句来检查当前页面名称我已经有类似的工作我会寻找发布我能帮助您入门的内容..
-
我使用 JQuery 有过类似的事情,但第三个节点变得复杂,如果我有很多页面,那么管理起来会非常麻烦。但我肯定会看看你的:)
标签: c# asp.net xml repeater sitemapprovider