【问题标题】:ASP-DropDownList CodeBehind imagesASP-DropDownList CodeBehind images
【发布时间】:2015-08-20 20:15:11
【问题描述】:

我想要的只是让我的 DropDownList 变得特别。 :(

我可以只写名字,但这不会那么有趣。所以我尝试添加图像,如下所示:

// Somewhere in the code...
ListItem item = new ListItem();
item.Value = // something
item.Text = "<img src=\"" + <AnImagePathIGetFromTheDatabase> + "\">";
<MyDropDownlist>.Items.Add(item);

然而,邪恶的东西会自动转义列表中的文本,如下所示:

&amp;lt;img src=&amp;quot;https://41.media.tumblr.com/bcb96f4a4c46a1001118ee216d7abacf/tumblr_mgfhbngsDl1r58qimo1_500.png&amp;quot;&amp;gt;

所以我得到的是文本而不是图像。我该如何克服这个问题?

编辑:使用 Lajos 的解决方案,我遇到了检查选择元素的情况,我得到以下信息:

<img src="http://i.somethingawful.com/u/robtg/Fiesta/f05.jpg" alt="monster" height="42" width="42">

这正是我想要的。可悲的是,在页面源代码中,我得到以下信息:

<option value="MeaninglessImp" class="imageconverter">http://i.somethingawful.com/u/robtg/Fiesta/f05.jpg</option>

列表本身显示 2 个空单元格。检查员说图片已经缩小到0x0。

小提琴:here.

为什么会这样?

【问题讨论】:

    标签: html asp.net image drop-down-menu


    【解决方案1】:

    您可以将文本设置为包含源代码,并且在页面加载之前不显示它们。您可以实现一个 Javascript 库,用列表中的图像替换 src 文本。那应该可以解决问题。

    // Somewhere in the code...
    ListItem item = new ListItem();
    item.Value = // something
    item.Text = <AnImagePathIGetFromTheDatabase>;
    listItem.Attributes.Add("class", "imageconverter");
    <MyDropDownlist>.Items.Add(item);
    

    在 Javascript 中,您需要类似以下内容:

    $(function() {
        $(".imageconverter").each(function() {
            $(this).html('<img src="' + $(this).text() + '">');
        });
    });
    

    【讨论】:

    • 你能举个例子吗?我不确定你在说什么。
    • 我已编辑我的答案以添加说明性示例。
    • 你能用生成的 html 创建一个小提琴吗?
    • 看来你需要用本地图片设置背景图片。 (binnyva.blogspot.ro/2006/01/…)
    • 本地路径解决了我的问题。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 2018-05-01
    相关资源
    最近更新 更多