【问题标题】: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")%>
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-21
      • 2012-03-09
      • 1970-01-01
      • 2012-09-26
      • 2018-01-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多