views:

20

answers:

2

I want to do something like this

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

is it possible?

+1  A: 

Make sure you are calling DataBinder instead of simply returning a string:

Change this:

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

To:

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

What you are doing is returning a string instead of executing the binding expression.

Oded
+1  A: 

You can write a Method on page level and format the output there.

eg

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

and in code behind:

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