2010-12-01 76 views
1

Je souhaite afficher une image si 2 conditions sont remplies.Instruction conditionnelle dans l'expression de la base de données

  1. l'élément de données est non nulle
  2. La valeur de la donnée est supérieure à 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" /> 

Message d'erreur

opérateur '=' est non défini pour le type 'DBNull' et le type 'Integer'. Description: Une exception non gérée s'est produite lors de l'exécution de la requête Web en cours. Veuillez consulter la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception: System.InvalidCastException: L'opérateur '=' n'est pas défini pour le type 'DBNull' et le type 'Integer'.

Répondre

0

Essayez d'utiliser OrElse. Dans VB.Net, l'opérateur conditionnel Or provoque l'évaluation des deux côtés, quel que soit le succès. Donc, si vous avez un null, il va tenter la comparaison de toute façon. Si vous utilisez OrElse, la deuxième condition ne sera pas évaluée si la première est vraie.