【问题标题】:Conditional operator with DataBinder.Eval带有 DataBinder.Eval 的条件运算符
【发布时间】:2011-04-28 15:52:16
【问题描述】:
我想做这样的事情
<%#(DataBinder.Eval(Container, "DataItem.Age").ToString()=="0")
?"n/a"
:"DataBinder.Eval(Container, "DataItem.Age")"%>
有可能吗?
【问题讨论】:
标签:
c#
asp.net
data-binding
【解决方案1】:
您可以在页面级别编写方法并在那里格式化输出。
例如
<%# GetAgeDisplay(Eval("Age")) %>
在后面的代码中:
public String GetAgeDisplay(Int16 age) {
return age == 0 ? "n/a" : String.Format("{0}", age );
}
【解决方案2】:
确保您调用的是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")%>
你所做的是返回一个字符串而不是执行绑定表达式。