ASP-DropDownList 代码隐藏图片

ASP-DropDownList CodeBehind images

我只想让我的 DropDownList 与众不同。 :(

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

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

然而邪恶的东西会自动转义列表中的文本,就像这样:

&lt;img src=&quot;https://41.media.tumblr.com/bcb96f4a4c46a1001118ee216d7abacf/tumblr_mgfhbngsDl1r58qimo1_500.png&quot;&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.

Fiddle: here.

为什么会这样?

您可以将文本设置为包含来源并且在页面加载之前不显示它们。您可以实现一个 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() + '">');
    });
});