Problème de #if dans un ItemTemplate ?

Signaler
Messages postés
121
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
24 juin 2010
-
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
-
Bonjour à tous,

J'ai un problème d'accès à un container dans un ItemTemplate. Avec une
condition "<%# iif ,,%> ça fontionne mais avec <%#if
%><%#end if%> cela ne fonctionne pas ? Seulementle "iif" n'est
pas approprié à mes besoins dans ce cas précis. Merci d'avance si
quelqu'un pouvais m'oter l'épine sous le pied :-)



Voici mon code qui ne fontionne pas :

<%#if Container.DataItem("Moteur") <> "" then%>
Motorisation :
<%# DataBinder.Eval(Container.DataItem, "Moteur").tostring %>

<%#end if%>


voici l'erreur :

Erreur de compilation
Description :
Une erreur s'est produite lors de la compilation d'une ressource requise
pour répondre à cette demande. Veuillez consulter ci-dessous les détails
relatifs à l'erreur en question, puis modifier votre code source de manière
appropriée.

Message d'erreur du compilateur: BC30201: Expression
attendue.

Erreur source:


Ligne 152 :						caractéristiques


Ligne 154 : <%#if Container.DataItem("Moteur") <> "" then%>
Ligne 155 : Motorisation :
Ligne 156 : <%# DataBinder.Eval(Container.DataItem, "Moteur").tostring %>



Thierry

5 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
En fait, le <# sert un peu comme le <= mais pour le binding

donc essaye avec un simple <% if container.dataitm("moteur") <> "" then %> je te garantis rien mais essaye !

Sinon va falloir faire ca par le code,

par contre juste une petite remarque, comme tu es dans un controle qui se repete, force toi encore plus à mettre le minimum de choses, mon role sur cette version 8 de codes-sources etaient entre autres de faire en sorte de minuer le poid des pages, et ce genre de choses, Nix en a fait pas mal :p donc au lieu de ton code, je te conseil une structure plutot comme ca

span.car {margin-bottom:20px: background-color:#FFCC66; font-weight:bold:font-family:arial; font-size:x-small;}

Ligne 152 : caractéristiques
Ligne 154 : <%if Container.DataItem("Moteur") <> "" then%>
Ligne 155 : Motorisation :
Ligne 156 : <%# DataBinder.Eval(Container.DataItem, "Moteur").tostring %>


Ca parait chiant à faire, mais une fois l'habitude pris, c'est enorme, j'ai réduit de 30% la page d'accueil de CS, alors qu'il y a du contenu en plus ...

c'est juste un petit conseil en passant ;)



<HR>



Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Messages postés
121
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
24 juin 2010

Hello Cyril,

Merci pour ta réponse, mais helas il y à un mais :-) 9a ne fonctionne pas non plus sans le "#" ?

Par le code je suis obliger de mettre des webform serveur pour chaque données que je veux analyser (j'en ai un paquet...).

Mais pourquoi la condition suivante fonctionne ?

<%# iif(Container.Dataitem("PrixE")=0,
DataBinder.Eval(Container.DataItem, "PrixInTernetE").tostring &
" €", DataBinder.Eval(Container.DataItem, "PrixE").tostring &
" €")%>




alors que celle ci ne fonctionne pas ?



<%# if Container.Dataitem("PrixE")=0 then %> mesrenseignements <%# end if%>

Sur le site de microsoft il donne pourtant cette solution ?


Je te remercie pour ta remarque concerant le "span.car" Mais c'est du
C# n'est-ce pas ? Moi je bosse en VB. Dans mon cas précis je ne repete
pas les lignes. je comble simplement un tableau issu d'un dataset avec
l'aide d'in datalist.

Merci encore
Thierry
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
non ce n'est pas du C#, j'ai oublié de préciser, mais du CSS :p

au début de ton doc, dans le head de la page, tu met un
<link href="styles.css" type="text/css"/>
et dans styles.css, tu met le petit bout de code de présentation.

pour ce qui est du pk le iif fonctione et pas le if, c'est trés simple, iif est une fonction, alors que if est une instruction, je suis qu'en fouillant un peu, on peut meme arriver à écire un truc genre microsoft.visualbasic.iif(test,true,false) iif est de type string

quand t'enleves le # ca te met quoi comme erreur ? sinon je vois pas de bidouille simple sauf passer par le code

Mon défi du jour est de ne pas ouvrir Whidbey de la journée, ca fait 2 mois que je l'ai pas arreté (sauf reboot du à des plantages de la beta2 (tout les jours))

bref, au pire je regarderais demain ;)


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Messages postés
121
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
24 juin 2010

merci pour tout. Je vais bucher pour trouver une solution :-)

C'est quoi Whidbey ?
A+
Thierry
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Whidbey c'est Visual Studio 2005, la meme chose que Visual Studio 2003
mais en beaucoup mieux est en .net 2, techno dans lequel CS a été écrit
:p (version beta 2 pour l'instant)

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