Hi,
I've been struggling to make the breadcrumb work for days. I hope you can assist me here.
At first I thought it's because I'm using site.master and the full postback is giving me problem, so I took the code from https://demos.telerik.com/aspnet-ajax/menu/examples/programming/showpath/defaultcs.aspx and made a small project to follow along. However, I'm still running into the same problem with RadMenu1.FindItemByUrl always returning null.
RadMenuItem currentItem = RadMenu1.FindItemByUrl(Request.Url.PathAndQuery);
Would you please let me know what am I missing in my setup?
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><<%@ Register tagPrefix="telerik" namespace="Telerik.Web.UI" assembly="Telerik.Web.UI" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html xmlns='http://www.w3.org/1999/xhtml'><head runat="server"> <title>Telerik ASP.NET Example</title> <link rel="stylesheet" type="text/css" href="styles.css" /></head> <body> <form id="form1" runat="server"> <telerik:RadScriptManager runat="server" ID="RadScriptManager1" /> <telerik:RadSkinManager ID="RadSkinManager1" runat="server" ShowChooser="true" /> <div class="demo-container size-medium no-bg"> <div class="demo-content"> <telerik:RadMenu RenderMode="Lightweight" ID="RadMenu1" runat="server" EnableRoundedCorners="true" EnableShadows="true" EnableTextHTMLEncoding="true" Skin="Silk"> <Items> <telerik:RadMenuItem Text="Products" NavigateUrl="DefaultCS.aspx?Page=Products"> <Items> <telerik:RadMenuItem Text="UI for ASP.NET AJAX" NavigateUrl="DefaultCS.aspx?Page=ASP.NET AJAX Controls" /> <telerik:RadMenuItem Text="UI for WinForms" NavigateUrl="DefaultCS.aspx?Page=WinForms Controls" /> <telerik:RadMenuItem Text="UI for WPF" NavigateUrl="DefaultCS.aspx?Page=WPF Controls" /> <telerik:RadMenuItem Text="UI for Silverlight" NavigateUrl="DefaultCS.aspx?Page=Silverlight Controls" /> <telerik:RadMenuItem Text="Reporting" NavigateUrl="DefaultCS.aspx?Page=Telerik Reporting" /> <telerik:RadMenuItem Text="Data Access" NavigateUrl="DefaultCS.aspx?Page=Telerik OpenAccess ORM" /> <telerik:RadMenuItem Text="Sitefinity ASP.NET CMS" NavigateUrl="DefaultCS.aspx?Page=Sitefinity ASP.NET CMS" /> <telerik:RadMenuItem Text="Test Studio" NavigateUrl="DefaultCS.aspx?Page=WebUI Test Studio" /> </Items> </telerik:RadMenuItem> <telerik:RadMenuItem Text="Consulting" NavigateUrl="DefaultCS.aspx?Page=Consulting"> <Items> <telerik:RadMenuItem Text="On-site Training" NavigateUrl="DefaultCS.aspx?Page=On-site Training" /> <telerik:RadMenuItem Text="Consulting Express" NavigateUrl="DefaultCS.aspx?Page=Consulting Express" /> <telerik:RadMenuItem Text="Open Classes Training" NavigateUrl="DefaultCS.aspx?Page=Open Classes Training" /> <telerik:RadMenuItem Text="Online Training" NavigateUrl="DefaultCS.aspx?Page=Online Training" /> <telerik:RadMenuItem Text="Project Consulting" NavigateUrl="DefaultCS.aspx?Page=Project Consulting" /> <telerik:RadMenuItem Text="Telerik Webinars" NavigateUrl="DefaultCS.aspx?Page=Telerik Webinars" /> </Items> </telerik:RadMenuItem> <telerik:RadMenuItem Text="Purchase" NavigateUrl="DefaultCS.aspx?Page=Purchase"> <Items> <telerik:RadMenuItem Text="Buy Now" NavigateUrl="DefaultCS.aspx?Page=Buy Now" /> <telerik:RadMenuItem Text="Renewals & Upgrades" NavigateUrl="DefaultCS.aspx?Page=Renewals & Upgrades" /> <telerik:RadMenuItem Text="License Agreement" NavigateUrl="DefaultCS.aspx?Page=License Agreement" /> <telerik:RadMenuItem Text="FAQ" NavigateUrl="DefaultCS.aspx?Page=FAQ" /> <telerik:RadMenuItem Text="Purchase Orders" NavigateUrl="DefaultCS.aspx?Page=Purchase Orders" /> <telerik:RadMenuItem Text="Contact Sales" NavigateUrl="DefaultCS.aspx?Page=Contact Sales" /> </Items> </telerik:RadMenuItem> <telerik:RadMenuItem Text="Support" NavigateUrl="DefaultCS.aspx?Page=Support"> <Items> <telerik:RadMenuItem Text="Support by Product" NavigateUrl="DefaultCS.aspx?Page=Support by Product" /> <telerik:RadMenuItem Text="Documentation" NavigateUrl="/DefaultCS.aspx?Page=Documentation" /> <telerik:RadMenuItem Text="Demos" NavigateUrl="DefaultCS.aspx?Page=Demos" /> <telerik:RadMenuItem Text="Knowledge Base" NavigateUrl="DefaultCS.aspx?Page=Knowledge Base" /> <telerik:RadMenuItem Text="Telerik Trainer" NavigateUrl="DefaultCS.aspx?Page=Telerik Trainer" /> <telerik:RadMenuItem Text="Videos" NavigateUrl="DefaultCS.aspx?Page=Videos" /> <telerik:RadMenuItem Text="Skins" NavigateUrl="DefaultCS.aspx?Page=Skins" /> </Items> </telerik:RadMenuItem> <telerik:RadMenuItem Text="Community" NavigateUrl="DefaultCS.aspx?Page=Community"> <Items> <telerik:RadMenuItem Text="Forums" NavigateUrl="DefaultCS.aspx?Page=Forums" /> <telerik:RadMenuItem Text="Blogs" NavigateUrl="DefaultCS.aspx?Page=Blogs" /> <telerik:RadMenuItem Text="Events" NavigateUrl="DefaultCS.aspx?Page=Events" /> <telerik:RadMenuItem Text="Code Library" NavigateUrl="DefaultCS.aspx?Page=Code Library" /> <telerik:RadMenuItem Text="Learning Resources" NavigateUrl="DefaultCS.aspx?Page=Learning Resources" /> <telerik:RadMenuItem Text="Announcements" NavigateUrl="DefaultCS.aspx?Page=Announcements" /> <telerik:RadMenuItem Text="Free Products" NavigateUrl="DefaultCS.aspx?Page=Free Products" /> </Items> </telerik:RadMenuItem> <telerik:RadMenuItem Text="Company" NavigateUrl="DefaultCS.aspx?Page=Company"> <Items> <telerik:RadMenuItem Text="About Telerik" NavigateUrl="DefaultCS.aspx?Page=About Telerik" /> <telerik:RadMenuItem Text="Press Center" NavigateUrl="DefaultCS.aspx?Page=Press Center" /> <telerik:RadMenuItem Text="Careers" NavigateUrl="DefaultCS.aspx?Page=Careers" /> <telerik:RadMenuItem Text="Contact Us" NavigateUrl="DefaultCS.aspx?Page=Contact Us" /> </Items> </telerik:RadMenuItem> </Items> </telerik:RadMenu> <div class="breadcrumb"> <telerik:RadSiteMap ID="BreadCrumbSiteMap" runat="server" DataTextField="Text" DataNavigateUrlField="NavigateUrl" Skin="Silk"> <DefaultLevelSettings ListLayout-RepeatDirection="Horizontal" SeparatorText="/" Layout="Flow" /> </telerik:RadSiteMap> <h3> <asp:Literal runat="server" ID="PageTitleLiteral" /></h3> </div> </div> </div> </form></body></html>
Code Behind:
using System;using System.Collections.Generic;using Telerik.Web.UI;public partial class _Default : System.Web.UI.Page{ //If RadMenu is data bound, please use its DataBound event instead of PageLoad. protected void Page_Load(object sender, EventArgs e) { RadMenuItem currentItem = RadMenu1.FindItemByUrl(Request.Url.PathAndQuery); if (currentItem != null) { //Select the current item and his parents currentItem.HighlightPath(); //Update the title of the PageTitleLiteral.Text = currentItem.Text; //Populate the breadcrumb DataBindBreadCrumbSiteMap(currentItem); } else RadMenu1.Items[0].HighlightPath(); } private void DataBindBreadCrumbSiteMap(RadMenuItem currentItem) { List<RadMenuItem> breadCrumbPath = new List<RadMenuItem>(); while (currentItem != null) { breadCrumbPath.Insert(0, currentItem); currentItem = currentItem.Owner as RadMenuItem; } BreadCrumbSiteMap.DataSource = breadCrumbPath; BreadCrumbSiteMap.DataBind(); }}
Thank you,
Helen
