1

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

我知道我可以以编程方式做到这一点(至少我假设),但有没有更简单的方法来做到这一点?我可以根据节点的值将图像链接到节点吗?我可以用 PathSeparatorTemplate 来做吗?

谢谢你。

4

2 回答 2

2

你可以放一个

<asp:Image ... />

进入 PathSerparatorTemplate 但您仍然必须从代码中设置图像 url。

于 2008-10-13T19:56:49.313 回答
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目录,其中包含每个Keys 的图像SiteMapNode。换句话说:此代码将导致在每个路径节点之后显示的图像取决于它之前节点的键。

希望这可以帮助某人。

于 2008-10-13T22:17:07.910 回答