1

我已经浏览了这里的问题,但似乎没有人回答我的问题。

我有一个 ASP.NET 中继器网格,它设置为绑定到一个列表,该列表显示该项目的值是什么。目前,它只显示变量的文本值,即OFF,但我想要它做的是显示适当的图像,即如果它关闭,则显示绿色图像,如果它打开,则显示红色图像。

这就是我在代码中尝试做的事情,假设你是在这里而不是 aspx.cs 做的?

<td><%# DataBinder.Eval(Container.DataItem, "Spill") == "OFF" ? %>
<asp:Image runat="server" ImageUrl="~/Images/green.JPG" /> 
<%:%> 
<asp:Image runat="server" ImageUrl="~/Images/red.JPG" /> %>
</td> 

编译器在 ? 之后抱怨 '%>' 和 : 之后的 '%>' 很明显我没有做对,但想不出还能怎么做。

感谢任何人提前帮助

4

2 回答 2

0

要在一行中的前端执行此操作,您可以执行以下操作:

<asp:Image id="imgSpill" runat="server" ImageUrl='<%# (DataBinder.Eval(Container.DataItem, "Spill") == "OFF" ? "~/images/red.jpg" : "~/images/green.jpg") %>' />

希望这可以帮助!祝你好运!

于 2012-04-15T00:18:00.160 回答
0

标记:

<asp:Image runat="server" 
   ImageUrl='<%# WhichImage(DataBinder.Eval(Container.DataItem, "Spill")) %>' /> 

代码隐藏:

protected string WhichImage(object spill)
{
    string result = "~/Images/green.JPG";
    string spillResult= (string)spill;
    if(!spillResult.Equals("OFF"))
    {
        result = "~/Images/red.JPG";
    }
    return result;
}
于 2012-04-13T15:07:22.540 回答