[英]why does this NOT work for me? it always returns TRUE
我一直在拔头发,试图弄清为什么这似乎对其他人有用,但对我却无效。
我有一些数据,并且在Hours2列中显然有带有NULL的单元格,而有些具有这样的小时数
'9:00 a.m. - 6:00 p.m.'
NULL
NULL
'9:00 a.m. - 6:00 p.m.'
'9:00 a.m. - 5:00 p.m.'
NULL
NULL
NULL
但是我不知道应该怎么做,如果应该是带有一些内联代码的简单IF语句。 我已经用过
<%# Eval("Hours2") %>
来获取值,并且显示得很好...
在第一种情况下,如果Hours2为NULL,我想显示一个或另一段文本。 (这是我的一个小时的数据的标签文本,如果有Hours2,则Friday具有不同的时间)
<%# Eval("Hours2") != DBNull.Value ? "mon - thurs" : "mon - fri" %>
这是基于Stack上其他问题的答案,听起来应该可行,但这始终是正确的...
如果我试图仅使用True或False来使事物可见或不可见,则同样的事情...
Visible ='<%# Eval("Hours2") != DBNull.Value %>'
我显然在这里错过了一些东西... !!!
将逻辑移至代码隐藏:
<%# GetString(Eval("Hours2")) %>
然后使用调试器找出实际传递的内容。
public string GetString(object hours){
...
}
尝试这个:
Visible ='<%# Eval("Hours2").ToString() != "" %>'
要么
Visible ='<%# !String.IsNullOrEmpty(Eval("Hours2").ToString()) %>'
您可以尝试以其他方式检查它...这就是我可能要做的。
<%#(String.IsNullOrEmpty(Eval("Hours2").ToString()) ? "mon-thurs" : "mon-fri")%>
如何从SQL获取它。 是指使用LINQ还是致电SP? 您可以在查询中使用isull(hours2,0)Hours2或isull(Hours2,'')Hours2。 这样它将对您有效。
<%# Eval("Hours2") != 0 ? "mon - thurs" : "mon - fri" %>
要么
<%# Eval("Hours2") != '' ? "mon - thurs" : "mon - fri" %>
要么
<%# !String.IsNullOrEmpty(Eval("Hours2").ToString()) ? "mon - thurs" : "mon - fri" %>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.