sentencia condicional en la expresión de enlace de datos
-
29-09-2019 - |
Pregunta
Quiero mostrar una imagen si se cumplen 2 condiciones.
- El elemento de datos no es nulo
- El valor del elemento de datos es mayor que 0
marcado
<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" />
Mensaje de error
operador '=' no está definida para el tipo 'DBNull' y tipo 'Integer'. Descripción: Una excepción no controlada durante la ejecución de la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.
Detalles de excepciones: System.InvalidCastException: Operador '=' no está definida para el tipo 'DBNull' y tipo 'Integer'
.Solución
Trate de usar OrElse
. En VB.Net el operador condicional Or
hace que ambos lados para evaluar independientemente del éxito. Así que si usted tiene un nulo que va a intentar la comparación de todos modos. Usando OrElse
hará que la segunda condición no para ser evaluado si el primero es cierto.