2010-10-21 12 views
5

ich so etwas wie diesesConditional Operator mit DataBinder.Eval

<%#(DataBinder.Eval(Container, "DataItem.Age").ToString()=="0") 
    ?"n/a" 
    :"DataBinder.Eval(Container, "DataItem.Age")"%> 

tun möchten, ist es möglich?

+1

Was passiert, wenn Sie versucht? –

Antwort

5

Stellen Sie sicher, DataBinder anstatt einfach Zurückgeben einer Zeichenfolge anrufen:

ändern diese:

<%#(DataBinder.Eval(Container, "DataItem.Age").ToString()=="0") ? 
      "n/a":"DataBinder.Eval(Container, "DataItem.Age")"%> 

An:

<%#(DataBinder.Eval(Container, "DataItem.Age").ToString()=="0") ? 
      "n/a":DataBinder.Eval(Container, "DataItem.Age")%> 

Was Sie tun, ist eine Zeichenfolge statt Rückkehr Ausführen des Bindungsausdrucks.

7

Sie können eine Methode auf Seitenebene schreiben und die Ausgabe dort formatieren.

zB

<%# GetAgeDisplay(Eval("Age")) %> 

und in Code-behind:

public String GetAgeDisplay(Int16 age) { 
    return age == 0 ? "n/a" : String.Format("{0}", age); 
}