繁体   English   中英

为什么这对我不起作用? 它总是返回TRUE

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM