IF & Container.DataItem dans une page ASP

Résolu
Templar_net Messages postés 30 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 28 septembre 2005 - 7 juil. 2005 à 14:44
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre 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.

13 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
8 juil. 2005 à 13:04
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
3
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
19 juil. 2005 à 17:37
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
3
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
7 juil. 2005 à 16:06
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
0
Templar_net Messages postés 30 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 28 septembre 2005
7 juil. 2005 à 16:39
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>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
7 juil. 2005 à 17:26
" />

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
0
Templar_net Messages postés 30 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 28 septembre 2005
8 juil. 2005 à 12:47
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.
0
Templar_net Messages postés 30 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 28 septembre 2005
8 juil. 2005 à 14:16
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.
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
8 juil. 2005 à 14:35
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
0
Templar_net Messages postés 30 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 28 septembre 2005
19 juil. 2005 à 11:15
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.
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
19 juil. 2005 à 14:52
remplace

' />

par

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

ca doit marcher


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
0
Templar_net Messages postés 30 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 28 septembre 2005
19 juil. 2005 à 17:29
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 ?
0
Templar_net Messages postés 30 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 28 septembre 2005
19 juil. 2005 à 17:46
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.
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
19 juil. 2005 à 18:16
>> 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
0
Rejoignez-nous