vb.net
  • expression
  • databound
  • conditional-statements
  • 2010-12-01 4 views 1 likes 
    1

    Я хочу отобразить изображение, если выполнены 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: Operator '=' не определен для типа 'DBNull' и введите 'Integer'.

    ответ

    0

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

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

    • Нет связанных вопросов^_^