Я думаю, что вы должны установить выбранный элемент в событии MenuItemDataBound (адаптировать свой код):
protected void Menu1_MenuItemDataBound(object sender, MenuEventArgs e)
{
if (SiteMap.CurrentNode != null)
{
if (e.Item.Text == SiteMap.CurrentNode.Title)
{
e.Item.Selected = true;
}
}
}
Дополнительный контент, показывающий, как обрабатывать ссылки в меню, имеющем в качестве источника данных карту сайта ...
Чтобы в новом окне была открыта ссылка меню, созданная из web.sitemap ...
На странице asp.net добавьте событие OnMenuItemDataBound:
<asp:Menu ID="mnuFooter" runat="server"
DataSourceID="SiteMapDataSource1"
OnMenuItemDataBound="mnuFooter_MenuItemDataBound">
</asp:Menu>
В web.sitemap добавить? символ URL:
В коде позади захватите событие MenuItemDataBound:
protected void mnuFooter_MenuItemDataBound(Object sender, MenuEventArgs e)
{
if (e.Item.NavigateUrl.Contains("?"))
{
e.Item.Target = "_blank";
}
}
Любой URL в web.sitemap, который содержит? откроется в новом окне. Обратите внимание, используйте любой другой действительный символ URL вместо символа? если необходимо.
Обзор управления меню ASP.NET