Условное выражение в выражении с привязкой к данным - PullRequest
1 голос
/ 01 декабря 2010

Я хочу отобразить изображение, если выполнены 2 условия.

  1. Элемент данных не является нулевым
  2. Значение элемента данных больше 0

Разметка

<img id="Img1" runat="server" visible='<%#IIF( DataBinder.Eval(Container.DataItem,    
"amount") is DBNull.Value Or DataBinder.Eval(Container.DataItem, 
"amount") = 0, False, True)%>' src="/Images/check.png" />

Сообщение об ошибке

Оператор '=' не определен для типа 'DBNull' и типа 'Integer'. Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.InvalidCastException: оператор '=' не определен для типа 'DBNull' и типа 'Integer'.

1 Ответ

0 голосов
/ 01 декабря 2010

Попробуйте использовать OrElse.В VB.Net условный оператор Or заставляет обе стороны выполнять оценку независимо от успеха.Так что, если у вас есть ноль, он все равно попытается сравнить.Использование OrElse приведет к тому, что второе условие не будет оцениваться, если первое истинно.

...