почему это НЕ работает для меня? всегда возвращает TRUE - PullRequest
0 голосов
/ 02 февраля 2012

Я вырывал свои волосы, пытаясь понять, почему это работает для других, но не для меня.

У меня есть некоторые данные, и в столбце 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" %>

Это основано на ответах других на другие вещи здесь, в стеке, звучит так, как будто это должно работать, но это ВСЕГДА ИСТИНА ...

То же самое, если я пытаюсь просто использовать True или False, чтобы сделать вещи видимыми или нет ...

Visible ='<%# Eval("Hours2") != DBNull.Value %>'

Я явно упускаю кое-что здесь ... !!!

Ответы [ 4 ]

1 голос
/ 02 февраля 2012

Переместить логику в код:

<%# GetString(Eval("Hours2")) %>

Затем используйте отладчик, чтобы выяснить, что на самом деле передается.

public string GetString(object hours){
 ...
}
0 голосов
/ 02 февраля 2012

как вы можете получить это из SQL. Значит с помощью LINQ или звоните SP? Вы можете использовать isnull (Hours2,0) Hours2 или isnull (Hours2, '') Hours2 в своем запросе. и это будет работать для вас, как это.

<%# Eval("Hours2") != 0 ? "mon - thurs" : "mon - fri" %>

OR

<%# Eval("Hours2") != '' ? "mon - thurs" : "mon - fri" %>

OR

<%# !String.IsNullOrEmpty(Eval("Hours2").ToString()) ? "mon - thurs" : "mon - fri" %>
0 голосов
/ 02 февраля 2012

Вы можете попробовать проверить это по-другому ... вот как я могу это сделать.

<%#(String.IsNullOrEmpty(Eval("Hours2").ToString()) ? "mon-thurs" : "mon-fri")%>
0 голосов
/ 02 февраля 2012

попробуйте это:

Visible ='<%# Eval("Hours2").ToString() != "" %>'

или

Visible ='<%# !String.IsNullOrEmpty(Eval("Hours2").ToString()) %>'
...