为什么这对我不起作用?它总是返回TRUE
本文关键字:返回 TRUE 不起作用 为什么 | 更新日期: 2023-09-27 18:22:24
我一直在努力弄清楚为什么这似乎对其他人有效,但对我无效。
我有一些数据,在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,我想显示一个或另一个文本位。(这是我小时一数据的标签文本,如果有小时2,那么周五有不同的时间)
<%# Eval("Hours2") != DBNull.Value ? "mon - thurs" : "mon - fri" %>
这是基于Stack其他人对其他事情的回答,听起来应该有效,但它总是正确的。。。
如果我只是想用True或False来使事物可见或不可见,那也是一样的。。。
Visible ='<%# Eval("Hours2") != DBNull.Value %>'
我显然错过了一些东西。。。!!!
将逻辑移动到codehind:
<%# GetString(Eval("Hours2")) %>
然后使用调试器找出实际传递的内容。
public string GetString(object hours){
...
}
您可以尝试以不同的方式进行检查。。。我可以这样做。
<%#(String.IsNullOrEmpty(Eval("Hours2").ToString()) ? "mon-thurs" : "mon-fri")%>
试试这个:
Visible ='<%# Eval("Hours2").ToString() != "" %>'
或
Visible ='<%# !String.IsNullOrEmpty(Eval("Hours2").ToString()) %>'
如何从SQL中获取它。意味着使用LINQ或调用SP?您可以在查询中使用isnull(Hours2,0)Hours2或isnull(Hours2,'')Hours2。它会像这样为你工作。
<%# Eval("Hours2") != 0 ? "mon - thurs" : "mon - fri" %>
或
<%# Eval("Hours2") != '' ? "mon - thurs" : "mon - fri" %>
或
<%# !String.IsNullOrEmpty(Eval("Hours2").ToString()) ? "mon - thurs" : "mon - fri" %>