Eval如何申请或条件C#

时间:2015-01-10 17:30:06

标签: c# asp.net

<%# Eval("FeeStatus") == DBNull.Value OR 0 ? "UnPaid" : "Paid" %>

我只是想说IF FeeStatus为null或0而不是print Unpaid ..什么是语法? 这个条件叫做什么我的意思是我在网上搜索但不知道该写些什么?

2 个答案:

答案 0 :(得分:0)

通过创建辅助函数,这可能是最可读的:

public bool IsPaid(object feeStatus) {
  return feeStatus != DBNull.Value && !(bool)feeStatus;
}

然后你可以写:

<%# !IsPaid(Eval("FeeStatus")) ? "UnPaid" : "Paid" %>

C#没有任何转换为​​x == (y or z)的本地x == y || x == z表单,除了仅评估x一次,您需要辅助函数或辅助变量。

如果你不介意两次致电Eval,你可以完整地写出来:

<%# Eval("FeeStatus") == DBNull.Value || !(bool)Eval("FeeStatus")? "UnPaid" : "Paid" %>

但这很难理解。

但是,如果您知道FeeStatusDBNull.Valuefalsetrue之一,而不是与DBNull.Value和{{1}进行比较},你可以比较false

true

答案 1 :(得分:0)

关闭,但没有雪茄。

<%# Eval("FeeStatus") == DBNull.Value || (int) Eval("FeeStatus") == 0 ? "UnPaid" : "Paid" %>

OR

<%# new object[]{ DBNull.Value, 0 }.Contains(Eval("FeeStatus")) ? "UnPaid" : "Paid" %>

C#中没有OR运算符。更不用说它不清楚你期望OR运算符如何在布尔逻辑中工作。

哦,伙计......好吧,你想要这种可憎的事。

<%# Eval("FeeStatus") as bool? ?? false ? "Paid" : "UnPaid" %>