2009-03-25 8 views
1

Mon site comporte quelques pages qui pointent vers la même page enfant. J'utilise une carte de site XML qui ne me permettra pas de dupliquer un SiteMapNode avec la même URL. Mon idée était alors de donner à mon contrôle SiteMapPath un nœud parent pour se peupler, puis d'ajouter un SiteMapNode de la page en cours.Existe-t-il un moyen de définir par programme le nœud actuel d'un contrôle SiteMapPath?

Est-ce que quelqu'un d'autre a dû faire quelque chose de similaire? J'ai regardé cet article http://msdn.microsoft.com/en-us/library/ms178425.aspx qui décrit comment "Modifier par programmation des nœuds de mappage de site en mémoire" mais ils incluent le SiteMapNode dans le fichier, puis modifient simplement ce nœud en inspectant la chaîne de requête.

Mon noeud n'existe jamais, ou si c'est le cas, je devrais le copier sur le parent correct afin qu'il puisse afficher le chemin correct. Pour un visuel:

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

Voici quelques exemples de ce que je voudrais voir:

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

Répondre

1

On dirait que ceux-ci vont résoudre le problème:

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

Pour les sitemaps dynamiques: http://www.codeproject.com/KB/aspnet/dynamicsitemap.aspx

Avec vous fournisseur de multiples besoin d'utiliser cette place pour fixer l'événement SiteMapResolve: (. Si votre événement ne se déclenche pas vous n'avez probablement pas le jeu de fournisseur correct)

SiteMap.Providers [currentProvider ] .SiteMapResolve + = new SiteMapResolveEventHandler (Provider_SiteMapResolve);

Questions connexes