2012-04-13 1 views
1

J'ai parcouru les questions ici, mais aucune d'entre elles ne semble répondre à ma question.Afficher une image dans une grille de répéteurs si la valeur liée est évaluée à une valeur spécifique

J'ai une grille de répéteur ASP.NET qui est configurée pour être liée à une liste qui montre la valeur de cet élément. Pour l'instant, il affiche simplement la valeur textuelle de la variable, c'est-à-dire OFF, mais ce que je veux faire, c'est afficher l'image appropriée, c'est-à-dire si elle est éteinte, afficher l'image verte, si elle est allumée.

C'est ce que j'essaie de faire dans le code, supposé que vous l'avez fait ici au lieu de l'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> 

Le compilateur se plaint du '%>' après le? et le '%>' après le: de toute évidence je ne l'ai pas bien compris, mais je ne peux pas imaginer comment le faire autrement.

Merci pour anyones aide à l'avance

Répondre

0

Markup:

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

code-behind:

protected string WhichImage(object spill) 
{ 
    string result = "~/Images/green.JPG"; 
    string spillResult= (string)spill; 
    if(!spillResult.Equals("OFF")) 
    { 
     result = "~/Images/red.JPG"; 
    } 
    return result; 
} 
+0

Merci pour cette réponse Rick, juste la réponse dont j'avais besoin :) – jamiesmith25

0

Pour ce faire sur la face avant en une ligne, vous ferait quelque chose comme ceci:

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

Espérons que cela aide! Bonne chance!

Questions connexes