根据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 中的值

SQLite如何对`GridView`中列的值求和

在GridView中不显示图像

ASP.NET MVC 在 jquery DataTables 中显示 Enum 列中的文本?

使用asp.net gridview和c#从phpmyadmin数据库显示图像

如何按显示的值而不是数据字段值对gridview列进行排序/过滤