2010-10-21 32 views
5

que quiero hacer algo como estooperador condicional con DataBinder.Eval

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

es posible?

+1

lo que sucedió cuando se trató? –

Respuesta

5

Asegúrese de que está llamando DataBinder en lugar de simplemente devolver una cadena:

cambiar esta situación:

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

Para:

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

Lo que está haciendo está volviendo una cadena en lugar de ejecutando la expresión de enlace.

7

Puede escribir un Método en el nivel de página y formatear el resultado allí.

por ejemplo

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

y en el código detrás:

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