Hi,
I made my own breadcrumb and it works since 4.0 version. But it's really simple
ascx :
cs :
using System;
using System.Linq;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Sitefinity;
namespace SitefinityWebApp.CustomComponent
{
public partial class SiteMapPath : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
SiteMapPath1.SkipLinkText = String.Empty;
SiteMapPath1.CssClass = CssClass;
SiteMapPath1.ItemCreated += new SiteMapNodeItemEventHandler(SiteMapPath1_ItemCreated);
}
[CssClassProperty]
public string CssClass
{ get; set; }
protected void SiteMapPath1_ItemCreated(object sender, SiteMapNodeItemEventArgs e)
{
if (e.Item.ItemType == SiteMapNodeItemType.PathSeparator)
e.Item.CssClass = CssClass + "Separator";
else
e.Item.CssClass = CssClass + "Link";
if (e.Item.ItemType == SiteMapNodeItemType.Root)
{
using (var sf = App.WorkWith())
{
var pageP = sf.Page().PageManager.GetPageNode(((Telerik.Sitefinity.Web.PageSiteNode)e.Item.SiteMapNode).Id);
var pageRoot = pageP.Nodes.Where(pChild => pChild .Ordinal == 1.0).SingleOrDefault();
HyperLink rootNode = e.Item.FindControl("RootNodeItem") as HyperLink;
if (pageRoot != null)
{
StringBuilder urlDest = new StringBuilder();
urlDest.Append(e.Item.SiteMapNode.Url);
urlDest.Append(pageRoot.Title.CurrentLanguage.TwoLetterISOLanguageName);
urlDest.Append("/");
urlDest.Append(pageRoot.UrlName);
rootNode.NavigateUrl = urlDest.ToString();
rootNode.Text = pageRoot.Title.Value;
}
}
}
}
}
}
Identify page with "pChild => pChild .Ordinal == 1.0" it's not the best way you just have to change it.
Regards,
Nicolas