2009-03-25 3 views
1

На моем сайте есть несколько страниц, указывающих на одну и ту же дочернюю страницу. Я использую карту сайта xml, которая не позволит мне дублировать SiteMapNode с тем же адресом. Моя идея заключалась в том, чтобы дать моему SiteMapPath управление родительским узлом, чтобы заполнить себя, а затем добавить на SiteMapNode текущей страницы.Есть ли способ программно установить текущий узел элемента управления SiteMapPath?

Неужели кто-то еще должен был сделать что-то подобное? Я просмотрел эту статью http://msdn.microsoft.com/en-us/library/ms178425.aspx, в которой описывается, как «программно изменять узлы карты сайта в памяти», но они включают SiteMapNode в файл, а затем просто изменяют этот узел, проверяя запрос.

Мой узел никогда не существует, или если это нужно, нужно скопировать его в правильный родитель, чтобы он мог отобразить правильный путь. Для визуального:

Home 
--My Page 
----Page A 
----Page B 
----Page C 
--My Other Page 
----Page A 
----Page D 
--YAPage 
----Page B 
----Page C 

Некоторые примеры того, что я хотел бы видеть:

Home > My Page > Page A 
Home > My Other Page > Page A 
Home > My Page > Page B 
Home > YAPage > Page B 

ответ

1

Похоже, они собираются, чтобы решить эту проблему:

http://www.codeproject.com/KB/aspnet/ABetterSiteMapResolve.aspx http://netpl.blogspot.com/2008/04/sitemapresolve-and-dynamic-site-map.html

Для динамических карт: http://www.codeproject.com/KB/aspnet/dynamicsitemap.aspx

С множественным провайдера вы должны будете использовать это вместо того, чтобы прикрепить событие SiteMapResolve: (. Если событие не стреляя, скорее всего, вы не имеете правильный набор провайдера)

SiteMap.Providers [currentProvider ] .SiteMapResolve + = новый SiteMapResolveEventHandler (Provider_SiteMapResolve);

Смежные вопросы