asp:SiteMapPath 与动态图像

发布于 2024-07-07 08:36:52 字数 199 浏览 8 评论 0原文

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

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

谢谢。

Ok, so I'm building bread crumbs and depending on the value of the breadcrumb an image will be the seperator. So "HOME" will have one image and "SEARCH" will have another.

I know I can do this programatically (at least I ASSUME) but is there an easier way to do this? Can I link an image to a node based on the value of the node? Can I do it with PathSeparatorTemplate?

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

ぇ气 2024-07-14 08:36:52

您可以将其放入

<asp:Image ... />

PathSerparatorTemplate 中,但仍然需要从代码中设置图像 url。

You can put an

<asp:Image ... />

into the PathSerparatorTemplate but you still have to set the image url from code.

百善笑为先 2024-07-14 08:36:52

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

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 目录,其中包含每个的图像SiteMapNodeKey。 换句话说:此代码将导致在每个路径节点之后显示的图像取决于其之前节点的键。

希望这对某人有帮助。

I see you have already accepted an answer, but I thought some code would help, so here is some:

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

Then I have an /images directory containing an image for each of the Key's of the SiteMapNodes. In other terms: this code will result in the image being displayed, after each of the path nodes, to depend on the key of the node before it.

Hope this helps someone.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文