un'istruzione condizionale nell'espressione databound
-
29-09-2019 - |
Domanda
voglio visualizzare un'immagine se sono soddisfatte le condizioni di 2.
- Il dato non è nullo
- Il valore del dato è maggiore di 0
Markup
<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" />
Messaggio di errore
operatore '=' non è definito per il tipo 'DBNull' e il tipo 'Integer'. Descrizione: Un'eccezione non gestita durante l'esecuzione della richiesta Web corrente. Si prega di rivedere l'analisi dello stack per ulteriori informazioni sull'errore e dove ha avuto origine nel codice.
Dettagli eccezione: System.InvalidCastException: Operatore '=' non è definito per il tipo 'DBNull' e il tipo 'Integer'
.Soluzione
Provare a usare OrElse
. In VB.Net il Or
operatore condizionale provoca entrambi i lati per valutare indipendentemente dal successo. Quindi, se si dispone di un nulla sta andando a tentare il confronto in ogni caso. Utilizzando OrElse
farà sì che la seconda condizione non da valutare se il primo è vero.