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.

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top