<%# Eval("Description") == DBNull.Value ? "empty" : "notempty"%>
显示总是'notempty',即使在DB中的该字段中存在null(varchar()的类型,null) ... 试图检查空字符串:
<%# Eval("Description") == "" ? "empty" : "notempty"%>
它总是会显示出来......这里有什么问题?
答案 0 :(得分:15)
DBNull.Value
和null
之间存在差异。该字段可能正在返回null
。
尝试
<%# Eval("Description") == null ? "empty" : "notempty"%>
此外,如果字段值类型应该是字符串,那么您可以按照..
的方式执行某些操作<%# (Eval("Description") as string) ?? "empty" %>
答案 1 :(得分:4)
您是否尝试过使用此方法:
<%# Convert.IsDBNull(Eval("Description") ? "empty" : "notempty"%>
答案 2 :(得分:4)
实际上并没有将DBNull
存储在此级别。您需要查找null
或空字符串string.IsNullOrEmpty
应该足够并且将捕获null
的状态并清空。
<%# string.IsNullOrEmpty(Eval("Description").ToString()) ? "empty" : "notempty"%>