带有DataBinder.Eval的条件运算符

时间:2010-10-21 14:30:10

标签: c# asp.net data-binding

我想做这样的事情

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

有可能吗?

2 个答案:

答案 0 :(得分:8)

您可以在页面级别编写方法并在那里格式化输出。

例如

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

并在代码背后:

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

答案 1 :(得分:6)

确保您正在调用DataBinder而不是简单地返回字符串:

改变这个:

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

要:

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

您正在做的是返回一个字符串而不是执行绑定表达式。