我有一个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";
}
}
我在这里做错了什么?而且,我该如何解决?感谢
答案 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)