2010-10-21 11 views
5

Chcę zrobić coś takiegoWarunkowe operator z DataBinder.Eval

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

jest to możliwe?

+1

Co się stało, kiedy próbował? –

Odpowiedz

5

Upewnij dzwonisz DataBinder zamiast po prostu wraca ciąg:

to zmienić:

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

Do:

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

Co robisz wraca ciąg zamiast wykonywanie wyrażenia wiążącego.

7

Możesz napisać metodę na poziomie strony i sformatować tam dane wyjściowe.

np

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

w kodzie za:

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