2016-07-12 3 views
0

SQL (Active столбец типа bit):Почему Eval утверждение показывает неправильный образ

id  Question   Active 
1  Weather today  1 

ASP.net Eval:

<img src='<%# Eval("Active") == "1" ? "images/active.png" : "images/inactive.png" %>' /> 

HTML:

<img src="images/inactive.png"> 

Почему это неактивное изображение, не отображаемое, а не активное.

+0

Какой тип активный столбец в БД? – Andrei

+0

'бит'. Я попытался проверить, не правда ли это, но это тоже не сработало. – Si8

+1

Скорее всего, вам нужно '(bool) Eval (« Active ») == true' – Andrei

ответ

2

Битовые поля соответствуют булева. Также вам нужно сделать преобразование типа, чтобы обеспечить правильное сравнение, поскольку Eval выводит только объект. Итак:

(bool)Eval("Active") == true 
1

Вы могли бы попытаться привести результат:

((int)Eval("Active")) == 1 ? [...] 

или, как указано в комментариях к bool:

((bool)Eval("Active")) == true ? [...] 
+0

Я думал, что работаю, но это не так. Это то, что я получаю: 'CS0019: Operator '==' не может применяться к операндам типа 'object' и 'int'' – Si8

+0

Вы можете попробовать передать его в' int'. Я обновлю свой ответ –

Смежные вопросы