问题
<%# Eval("Description") == DBNull.Value ? "empty" : "notempty"%>
is showing always 'notempty' even there is null in that field in DB (type of varchar(), null) ... Tried also checking for empty string:
<%# Eval("Description") == "" ? "empty" : "notempty"%>
and it always displays notempty... what's wrong here??
回答1:
There is a difference between DBNull.Value
and null
. It is possible the field is returning null
.
Try
<%# Eval("Description") == null ? "empty" : "notempty"%>
Also if the field value type is supposed to be string you could do something along the lines of..
<%# (Eval("Description") as string) ?? "empty" %>
回答2:
Have you tried using this method:
<%# Convert.IsDBNull(Eval("Description") ? "empty" : "notempty"%>
回答3:
It is not actually storing DBNull
at this level. You need to look for null
or an empty string which string.IsNullOrEmpty
should be enough and will capture both states of null
and empty.
<%# string.IsNullOrEmpty(Eval("Description").ToString()) ? "empty" : "notempty"%>
来源:https://stackoverflow.com/questions/5224264/eval-check-for-dbnull-doesnt-work