2012-04-13 4 views
1

Ich habe die Fragen hier gelesen, aber keine scheint meine Frage zu beantworten.Zeigen Sie ein Bild in einem Repeater-Gitter, wenn der gebundene Wert zu einem bestimmten Wert ausgewertet wird

Ich habe ein ASP.NET-Repeater-Gitter, das eingerichtet ist, um an eine Liste gebunden zu sein, die anzeigt, wie der Wert dieses Elements ist. Im Moment zeigt es nur den Textwert der Variablen, d. H. AUS, aber was ich tun möchte, ist das entsprechende Bild anzuzeigen, d.h. wenn es aus ist, zeige grünes Bild, wenn es ein ist, zeige rotes Bild.

Dies ist, was ich versuche, in den Code zu tun, angenommen, Sie haben es hier statt der aspx.cs?

Der Compiler beschwere sich über das '%>' nach dem? und das '%>' nach dem: so offensichtlich habe ich es nicht richtig verstanden, kann aber nicht anders darüber nachdenken.

Vielen Dank für anyones Hilfe im Voraus

Antwort

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

Danke für diese Antwort Rick, nur die Antwort, die ich brauchte :) – jamiesmith25

0

es auf der Vorderseite zu tun in einer Zeile, Sie würde so etwas tun:

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

Hoffe, das hilft! Viel Glück!

Verwandte Themen