使用Eval的条件图像路径

时间:2011-02-06 20:14:42

标签: c# asp.net

我有两张图片progress.png和completed.png。根据db表中的状态(In Complete of Complete),我想显示适当的图像。 asp.net中IIF()语句的正确语法是什么?谢谢你的帮助。

pseudocode:

<asp:image ImageUrl='<%# IIF(Eval("Status").Equals("In Progress")
display - 'images/progress.png') 
else if status equals "Complete"
display - 'images/complete.png' %>' />

2 个答案:

答案 0 :(得分:1)

我知道这不会回答你关于IIF语法的问题,但会解决你关于显示图像的问题。

我宁愿使用它:

<asp:image ImageUrl='<%# GetStatusImage(Eval("Status").ToString()) %>' />

并在代码隐藏中编写以下方法。

public string GetStatusImage(string status)
{
     switch(status)
         case "In Progress":
             return "images/progress.png";
         break;
         case "Complete":
             return "images/complete.png";
         break;
         case default:
             return string.Empty;
         break;        
}

答案 1 :(得分:0)

最好的办法是创建一个公共方法,它将返回正确的图像并从代码中调用方法,如下所示:

<%= GetProgressImage() %>

或者,如果您只有两种状态,这可能会有效:

<%= Eval("Status").Equals("Complete") ? "'images/complete.png'"  : "'images/progress.png'"   %>