C# 基于asp GridView列中的值显示图像

C# 基于asp GridView列中的值显示图像,c#,javascript,asp.net,gridview,C#,Javascript,Asp.net,Gridview,我有一个gridview,其中一个模板字段是asp图像服务器标记。我想在这个gridview中显示一个图像,但基于我在databind上获得的值 所以,每一行可以有不同的值,根据这些值,我需要显示不同的图像。我试图调用一个javascript函数GetImage(),并将在数据绑定上获得的值传递给该函数。但是,我不能让它工作 <Columns> <asp:TemplateField HeaderText="<%$Resources:LocalizedText

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

所以,每一行可以有不同的值,根据这些值,我需要显示不同的图像。我试图调用一个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>
我做错了什么?还有,我怎样才能修复它?谢谢

您的GetImage函数未执行

见:



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

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

完成了。

您能显示呈现的HTML输出吗?嗯,很有意义。但是,你知道我怎样才能解决这个问题吗?非常感谢您的帮助。您无需使用任何javascript即可完成。我无法使用图像服务器标记的src属性的Bind或Eval。根据您的回答,我使用了ImageURL属性,并在数据源(代码隐藏)中相应地处理了数据。谢谢
public static string GetImage(int value)
{
    if (value == 1)
    { 
        return "../Images/act_green.gif";
    }
    else
    {
        return "../Images/act_red.jpg";
    }
}