根据asp GridView列中的值显示图像

时间:2011-02-01 12:18:37

标签: c# javascript asp.net gridview

我有一个gridview,其中一个模板字段是一个asp图像服务器标签。我想在此gridview中显示图像,但是基于我在databind上获得的值。

因此,每一行都可以有不同的值,并根据这些值我需要显示不同的图像。我试图调用javascript函数GetImage()并将我在databind上获得的值传递给此函数。但是,我不能让这个工作。

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

我在这里做错了什么?而且,我该如何解决?感谢

2 个答案:

答案 0 :(得分:7)

除非你有更多的需求没有提到,否则你不需要使用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";
    }
}

你已经完成了。

答案 1 :(得分:1)

您的 GetImage 功能未执行。

请参阅: IMG SRC tags and JavaScript


服务器端代码可以在不使用JS的情况下返回图像的路径。