asp:具有动态图像的SiteMapPath

时间:2008-10-13 19:20:09

标签: controls asp.net-3.5 sitemappath

好的,所以我正在制作面包屑,并且根据面包屑的价值,图像将成为分隔符。所以“HOME”将有一个图像,“SEARCH”将有另一个。

我知道我可以以编程方式执行此操作(至少我是ASSUME)但是有更简单的方法吗?我可以根据节点的值将图像链接到节点吗?我可以使用PathSeparatorTemplate吗?

谢谢。

2 个答案:

答案 0 :(得分:2)

你可以放一个

<asp:Image ... />

进入PathSerparatorTemplate但你仍然需要从代码中设置图像网址。

答案 1 :(得分:0)

我看到你已经接受了答案,但我认为一些代码会有所帮助,所以这里有一些:

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;
        }
    }

然后我有一个/images目录,其中包含Key的每个SiteMapNode的图像。换句话说:此代码将导致在每个路径节点之后显示图像,以依赖于之前节点的密钥。

希望这有助于某人。