How to set up breadcrumb in einem ASP.net Seite
Meine Ordner Hierarchie für die Seiten sind (Sie sind alle im gleichen Ordner):
Site.Master
Default.aspx
find_provider.aspx
provider.aspx
Ich habe eine Web.sitemap
Seite eingerichtet:
<?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>
Rufe ich in meiner 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>
So Default.aspx
ist meine landing-page. Benutzer können klicken Sie auf find_provider.aspx
Suche nach einem Anbieter Ihrer Wahl. Für jeden Anbieter suchergebnis, kann der Benutzer klicken Sie auf den PROFIL-link, um die Informationen für jeden einzelnen Anbieter, die die provider.aspx
Seite.
Also:
- Wenn ich auf der Startseite meiner breadcrumb sollte:
Home
- Wenn ich auf die ein Anbieter zu finden der Seite meine breadcrumb sollte:
Home
Provider - Wenn ich auf der Profil-Seite meiner breadcrumb sollte:
Home Provider
Profile
Stattdessen sehe ich diese auf meiner Seite (egal auf welcher Seite ich bin):
Bitte helfen Sie mir, ändern Sie den code so, dass die breadcrumb angezeigt wird, sitenode und subsitenode.
Beispiel, was ich erreichen möchte:
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 -->
Ausgabe:
- Dies ist eigentlich nicht so schwierig und hier ist eine Anleitung, wie dies zu tun.. ich persönlich habe meine eigenen mit MasterPage und nachverfolgt, von welcher Seite ich auf +, von welcher Seite ich hatte navigiert der gesamte code wurde an der MasterPage Ebene ..es gibt viele Möglichkeiten, um Haut diese Katze.. Asp.NET BreadCrub
- Danke. Ich habe bereits überprüft, die Seite. Anpassung ist sehr begrenzt. Ich bin auf der Suche, um es zu tun, wie ich in meiner Frage (aktualisiert)
- können Sie ein label erstellen, das auf der master-Seite und von dort aus, wie ich erklärt habe, früher zeigen, dass es der Weg aller aus der masterpage. Sie wird schreiben müssen, das 1 oder 2 Methoden, es zu tun sowie einige Switch-case-Anweisungen zum prüfen der aktuellen Seite name ich habe so etwas wie diese funktioniert bereits, ich werde posten was ich kann, um Ihnen den Einstieg..
- Sowas hatte ich mit JQuery aber der Dritte Knoten wird kompliziert, und wenn ich habe eine Menge Seiten, dann wird es sehr umständlich zu handhaben. Aber sicher, ich werde schauen bei dir 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser arbeitet zur Zeit für mich.. ich habe viel mehr code in der Page_Load-aber das ist das wichtige Stück
in meinem aktuellen MasterPages Pre-Render-Ereignis habe ich eine Methode namens
Dann richte ich dies in der Page_Load () -
In Bezug auf deine Frage hier: Wie die Verwendung von Bootstrap-Stil der BreadCrumb mit meinem ASP.NET Menü?
Dem SiteMapPath-fungiert als
<ul/>
- tag in die HTML-rendering. So verwenden Sie die Methode gibt es, die Struktur würde wahrscheinlich so etwas wie dieses:Und fügen Sie die javascript, die Sie lösen müssen Sie die hyperlink-von CurrentNode.
Hoffe, das hilft.