ASP: SiteMappath com imagens dinâmicas
-
10-07-2019 - |
Pergunta
Ok, então estou construindo migalhas de pão e, dependendo do valor da troca de pão, uma imagem será o separador. Portanto, "Home" terá uma imagem e "pesquisa" terão outra.
Eu sei que posso fazer isso programaticamente (pelo menos presumo), mas existe uma maneira mais fácil de fazer isso? Posso vincular uma imagem a um nó com base no valor do nó? Posso fazer isso com PathSeparatorTemplate?
Obrigada.
Solução
Vejo que você já aceitou uma resposta, mas pensei que algum código ajudaria, então aqui estão alguns:
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;
}
}
Então eu tenho um /images
diretório contendo uma imagem para cada um dos Key
é do SiteMapNode
s. Em outros termos: este código resultará na exibição da imagem, após cada um dos nós do caminho, depender da chave do nó antes dela.
Espero que isso ajude alguém.
Outras dicas
Você pode colocar um
<asp:Image ... />
no PathSerParatorTemplate, mas você ainda precisa definir o URL da imagem do código.