IF & Container.DataItem dans une page ASP [Résolu]

Messages postés
30
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
28 septembre 2005
- - Dernière réponse : jesusonline
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
- 19 juil. 2005 à 18:16
Voila j'ai un datagrid qui m'affiche le nom d'une société avec son logo.
Le libelle de la société et le nom du fichier image sont dans ma Base de données.
Mais le nom du fichier image peut être vide (NULL)

Donc je voulais faire un IF qui teste si j'ai une valeur ou non comme ceci :

<%# IF Container.DataItem("logo_compagnie") = nothing then%>
http://blogs.developpeur.org/cyril/archive/2004/11/29/3570.aspx

Je suis donc aller voir le lien du site, mais je ne comprend rien et je ne vois pas du tout comment faire, ...

Aidez-moi, SVP.
Afficher la suite 

13 réponses

Meilleure réponse
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
16
3
Merci
container.dataitem("truc") = "<NULL>" ? container.Dataitem = dbnull.value ?

ou alors

container.dataitem("truc").indexof("jpg") < 0 'ca te dira si oui ou non le champ contient jpg

met un point d'arret et regarde la valeur, tu pourras ainsi faire ton test.


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 142 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jesusonline
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
16
3
Merci
oui, pas le temps d'expliquer ;)

pourquoi tu veux un label ? ca t'offre quoi de plus ?
... ,"" & Container.dataitem("...") & "", ...

ca t'irait pas ?


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 142 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jesusonline
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
16
0
Merci
la page interressant c'est : http://www.devx.com/vb2themax/Article/19908/1763/page/4

Mais dis moi un peu plus ou est le problème car la ...


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Commenter la réponse de jesusonline
Messages postés
30
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
28 septembre 2005
0
Merci
Et bien apparemment il n'est pas possible de faire un :

<%# IF Container.DataItem("logo_compagnie") = nothing then%> ou
<% IF%><%# Container.DataItem("logo_compagnie")%> <% = nothing then%> ou
<% IF <%# Container.DataItem("logo_compagnie")%> = nothing then%>

Donc je ne peux pas tester si dans ma table le champ "logo_compagnie" est vide ou non.
Je peux faire ceci :

<HeaderStyle HorizontalAlign="Center" Width="100px"></HeaderStyle>


' />



Mais si le champ dans la base est vide, le petit schéma avec la croix rouge disant qu'il n'y a pas d'image apparait.
Je voudrais donc afficher à la place le texte : Pas de logo.
D'ou mon besoin de faire un IF. Mais le Container.dataItem a l'intérieur d'un IF apparaement ca ne marche pas, ...
Et je ne comprend pas la solution de rechange sur la page 4.

:-(
<HEADERSTYLE Width ="100px" HorizontalAlign= "Center"></HEADERSTYLE> <HEADERSTYLE Width ="100px" HorizontalAlign="Center"></HEADERSTYLE>
Commenter la réponse de Templar_net
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
16
0
Merci
" />

c'est surement plus simple que la solution plus haut qui sert dans des cas bien compliqué ...


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Commenter la réponse de jesusonline
Messages postés
30
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
28 septembre 2005
0
Merci
Alors j'ai testé, ca donne bien une condition avec vrai ou faux mais le souci c'est qu'il me trouve quand même quelque chose pour mes champs vides. Je m'explique :

Je suis allé voir dans ma base de donner SQL, j'ai des champs "logo_compagnie" qui contiennent le nom du fichier et j'en ai qui sont marqué <NULL>

Et bien dans l'affichage de mon datagrid j'ai toujours l'image avec la croix rouge disant qu'il ne trouve pas l'image pour les champs <NULL>.

C'est donc que même si j'ai <NULL> il trouve quelque chose dans le Container.DataItem("Logo_copmpagnie")

As-tu une idee d'ou cela peut provenir ?


PS : J'ai tester en condition :
Container.DataItem("Logo_copmpagnie") = <NULL> mais il n'en veut pas.
Commenter la réponse de Templar_net
Messages postés
30
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
28 septembre 2005
0
Merci
YES !!! Super.

C'est le dbnull.value qui fonctionne. Ce qui donne pour ceux qui chercheraient :

' />

Bon le seul inconvenient c'est qu'il faut créer une image avec le texte "Pas de logo", mais c'est pas un code moins compliqué en effet.
Commenter la réponse de Templar_net
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
16
0
Merci
Si tu veux t'es pas obligé de mettre une image, mais c'est toujours plus joli avec une image je crois. Pour ne pas mettre d'image c'est simple, tu met toute la balise img dans le cas vrai et rien dans le cas false


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Commenter la réponse de jesusonline
Messages postés
30
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
28 septembre 2005
0
Merci
Non ca j'ai testé et ca ne marche pas.
Mais c'est pas grave avec l'image, c'est déjà une bonne parade.
Commenter la réponse de Templar_net
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
16
0
Merci
remplace

' />

par

<%# IIF(Container.DataItem("logo_societe") is dbnull.value, "", "" ) %>

ca doit marcher


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Commenter la réponse de jesusonline
Messages postés
30
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
28 septembre 2005
0
Merci
Ok, ok pas mal on y est presque.
J'ai modifié ton code pour que ca marche voici le resultat :

<%# IIF(Container.DataItem("logo_compagnie") is dbnull.value,"" , "" ) %>

Mais temps qu'a faire, ce que je voudrais maintenant, c'est que s'il n'y a pas de logo, il m'affiche le nom de la compagnie. J'ai donc essayé le même principe comme ceci :

<%# IIF(Container.DataItem("logo_compagnie") is dbnull.value,"" , "" ) %>

Et bizarrement il ne m'affiche rien, .... J'ai même essayé plus simple :
<%# IIF(Container.DataItem("logo_compagnie") is dbnull.value,"TOTO />" , "" ) %>
Idem, TOTO ne s'affiche pas.

Alors que si je mets directement dans un ItemTemplate :
TOTO
/>

Ce code marche, ...

Y aurait-il une raison particulière ?
Commenter la réponse de Templar_net
Messages postés
30
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
28 septembre 2005
0
Merci
Bon, ... ok, ... Je m'avoue vaincu, c'est toi le meilleur. Ca marche, ... lol
Pour le Label. Bah, ... parce que je ne sais pas utilisé le SPAN

Merci beaucoup.
Commenter la réponse de Templar_net
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
16
0
Merci
>> http://blogs.developpeur.org/cyril/archive/2005/07/11/9104.aspx je suis sur que pleins de choses vont etre utile ;)


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Commenter la réponse de jesusonline