根据asp GridView列中的值显示图像
Posted
技术标签:
【中文标题】根据asp GridView列中的值显示图像【英文标题】:Display image based on a value in asp GridView column 【发布时间】:2011-06-19 05:56:45 【问题描述】:我有一个gridview,其中一个模板字段是一个asp 图像服务器标签。我想在这个网格视图中显示一个图像,但基于我在数据绑定上获得的值。
因此,每一行都可以有不同的值,并且基于这些值,我需要显示不同的图像。我试图调用一个 javascript 函数 GetImage() 并将我在数据绑定中获得的值传递给这个函数。但是,我不能让它工作。
<Columns>
<asp:TemplateField HeaderText="<%$Resources:LocalizedText,LabelStatus%>">
<ItemTemplate>
<asp:Image ID="imgStatus" runat="server" CssClass="label" src="GetImage(<%#Eval(<%# Bind("Status_value") %>) %>)"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
Javascript 函数 -
function GetImage(value)
if (value == 1)
return "../Images/act_green.gif";
else
return "../Images/act_red.gif";
我在这里做错了什么?而且,我该如何解决?谢谢
【问题讨论】:
你能显示呈现的 html 输出吗? 【参考方案1】:除非你有更多你没有提到的需求,否则没有必要使用Javascript,你还不如在服务器上做所有事情。
将您的 asp:image 标记更改为以下内容:
<asp:Image ID="imgStatus" runat="server" CssClass="label" ImageURL='<%# GetImage((int)Eval("Status_Value")) %>' />
在您的代码隐藏中,放置以下内容:
public static string GetImage(int value)
if (value == 1)
return "../Images/act_green.gif";
else
return "../Images/act_red.jpg";
你已经完成了。
【讨论】:
我无法对图像服务器标签的 src 属性使用 Bind 或 Eval。而且,根据您的回答,我改用 ImageURL 属性并在我的数据源(代码隐藏)中相应地操作数据。谢谢。【参考方案2】:您的 GetImage 函数未执行。
见: IMG SRC tags and JavaScript
服务器端代码可以不使用JS返回图片的路径。
【讨论】:
嗯是有道理的。但是,知道如何解决这个问题吗?任何帮助表示赞赏。 你可以在不使用任何javascript的情况下做到这一点。以上是关于根据asp GridView列中的值显示图像的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 C# 从 ASP.NET 中的 SQL Server 数据库中检索和显示 GridView 中的值
ASP.NET MVC 在 jquery DataTables 中显示 Enum 列中的文本?