Лучший способ добиться желаемого результата - игнорировать элемент управления SitePath и вместо этого использовать коллекцию SiteMapNode в SiteMap. Сервер анализирует файл web.sitemap в коллекцию SiteMapNodes и подключает SiteMap.CurrentNode, находя узел, соответствующий URL-адресу текущей страницы. Каждый SiteMapNode имеет свойство ParentNode. Вот справочная страница на MSDN .
Итак, все, что вам нужно сделать, это проверить, есть ли у CurrentNode родительский элемент, если он добавляет заголовок ParentNode к заголовку CurrentNode и продолжает работать, пока не достигнете RootNode (где вы подставляете название своей компании для корневого узла). название).
Ниже приведено быстрое решение; это может войти в MasterPage, если вы используете один. Я не уверен, что ваш язык, но это должно быть легко переписать в VB.Net. Я дал ему простой тест, и он, казалось, сработал.
Вы можете настроить символы, разделяющие заголовки страниц.
protected void Page_Load(object sender, EventArgs e)
{
Page.Title = SiteMapTitle(SiteMap.CurrentNode, "", " - ");
}
private string GetNodeTitle(SiteMapNode oNode)
{
if (oNode == SiteMap.RootNode)
return "Company Name";
else
return oNode.Title;
}
private string SiteMapTitle(SiteMapNode oNode, string szTitle, string szItemSeparator)
{
if (szTitle != string.Empty)
szTitle = szTitle + szItemSeparator + GetNodeTitle(oNode);
else
szTitle = GetNodeTitle(oNode);
if (oNode.ParentNode != null)
szTitle = SiteMapTitle(oNode.ParentNode, szTitle, szItemSeparator);
return szTitle;
}
Надеюсь, это поможет ...