asp: SiteMapPath avec des images dynamiques
-
10-07-2019 - |
Question
D'accord, je construis donc de la chapelure et, en fonction de sa valeur, l'image sera le séparateur. So & HOME; HOME " aura une image et " RECHERCHE " aura un autre.
Je sais que je peux le faire par programme (au moins, j’ASSUME) mais existe-t-il un moyen plus simple de le faire? Puis-je lier une image à un nœud en fonction de la valeur du nœud? Puis-je le faire avec PathSeparatorTemplate?
Merci.
La solution
Je vois que vous avez déjà accepté une réponse, mais je pensais qu'un code aiderait. Voici donc quelques-unes:
Site1.Master
<asp:SiteMapPath ID="SiteMapPath1" Runat="server" OnItemDataBound="Item_Bound">
<PathSeparatorTemplate>
<asp:Image ID="SepImage" runat="server" ImageUrl="/images"/>
</PathSeparatorTemplate>
</asp:SiteMapPath>
Site1.Master.cs
private string lastItemKey = "";
public void Item_Bound(Object sender, SiteMapNodeItemEventArgs e)
{
if (e.Item.ItemType == SiteMapNodeItemType.PathSeparator)
{
string imageUrl = ((Image) e.Item.Controls[1]).ImageUrl;
imageUrl += lastItemKey + ".png";
((Image) e.Item.Controls[1]).ImageUrl = imageUrl;
}
else
{
lastItemKey = e.Item.SiteMapNode.Key;
}
}
Ensuite, j'ai un répertoire / images
contenant une image pour chaque clé
du SiteMapNode
. En d'autres termes: ce code aura pour conséquence que l'image affichée, après chacun des nœuds du chemin, dépendra de la clé du nœud précédent.
J'espère que cela aide quelqu'un.
Autres conseils
Vous pouvez mettre un
<asp:Image ... />
dans PathSerparatorTemplate mais vous devez toujours définir l'URL de l'image à partir du code.