Je veux que mon site ASP.NET ait une chaîne de menu simple appelée Breadcrumbs. J'ai créé Sitemap avec tous les éléments requis et enregistré dans Web.config. Par exemple:Est-il possible d'utiliser Sitemap ASP.NET pour générer du fil d'Ariane?
<siteMap>
<siteMapNode url="Default.aspx" title="Home" >
<siteMapNode url="hosting/Default.aspx" title="Hosting" />
<siteMapNode url="software/Default.aspx" title="Software">
<siteMapNode url="firefox/Default.aspx" title="Firefox">
<siteMapNode url="Download.aspx" title="Download" />
<siteMapNode url="Support.aspx" title="Support" />
</siteMapNode>
</siteMapNode>
</siteMapNode>
</siteMap>
et a créé un contrôle placé sur Masterpage. Ici, il est code de génération de menu:
protected void Control_Load(Object sender, EventArgs e)
{
string path = String.Empty;
StringCollection list = new StringCollection();
foreach (string str in Request.Url.Segments)
{
path += str;
string link = String.Format("<a href=\"{0}://{1}{2}\">{3}</a>", Request.Url.Scheme, Request.Url.Authority, path, this.names[str]);
list.Add(link);
}
foreach (string str in list)
{
menu += String.Concat(str, SeparatorLine);
}
menu = menu.Remove(menu.LastIndexOf(SeparatorLine));
}
Mais il utilise un StringDictionary comme {{ "/", "Home"}, { "hébergement /", "Hébergement"}, { "logiciel /", "Logiciel" } ..}
Comment puis-je utiliser une requête au plan du site au lieu de cela? Ou peut-être quelque chose d'autre, pas Sitemap, mais inventé au préalable.
@Tim: Voici un exemple de la façon de masquer les nœuds racines rendus dans un gestionnaire 'OnItemCreated': http://johanleino.wordpress.com/2009/01/11/hiding-the-rootnode-in-a -breadcrumb-control-sitemap-path /. Fondamentalement, il définit la propriété 'Visible' des noeuds à' false', si le noeud est un noeud racine. – Groo