2010-10-21 5 views
5

Je veux faire quelque chose comme çaOpérateur conditionnel avec DataBinder.Eval

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

est-il possible?

+1

Qu'est-ce qui est arrivé lorsque vous avez essayé? –

Répondre

5

Assurez-vous que vous appelez DataBinder au lieu de simplement retourner une chaîne:

Modifier ceci:

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

Pour:

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

Ce que vous faites est retourne une chaîne au lieu de l'exécution de l'expression de liaison.

7

Vous pouvez écrire une méthode au niveau de la page et formater la sortie à cet endroit.

par exemple

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

et code derrière:

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