Afficher Image sur un datagrid suivant champ de données ?

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
-
<HR>
Voici mon problème : (je travaille avec VS)


Je veux afficher dans un « datagrid » une colonne avec des images. Mais ces images s’affichent en fonction d’un champ de données « image ». Si ce champ est à « 0 » je n’affiche pas d’image et si ce champ est égale à « 1 » j’affiche l’image se trouvant dans un dossier image. L’image a pour nom un autre champ « RefConc ».jpg


Dois-je agir depuis mon code VB ou directement sur le « datagrid » et comment s’il vous plait ?


<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />


Voici mon code en VB du datagrid





Sub AffDatagridVeh(ByVal param As String)


afficheVeh = 1


Dim da As SqlDataAdapter


Dim ds As DataSet


Dim requete As String


Select Case ViewState("IdCategVeh")


Case Is = 1


requete = "SELECT VoitMar.Marque AS Marque, VoitMod.Mod AS Modele, VoitAnno.TypePrec, Carburant.CarbF AS Energie, VoitCat.CatF AS Type, RefAnno.Image AS Image, RefAnno.PrixE AS Prix, RefAnno.PrixInternetE AS PrixE, VoitAnno.Annee AS Année, VoitAnno.Km, VoitAnno.CV, RefAnno.TTC, RefAnno.Image, RefAnno.ImageN, RefAnno.RefAnno"


requete &= " FROM VoitAnno INNER JOIN"


requete &" RefAnno ON VoitAnno.[N°RefAnno] RefAnno.[N°RefAnno] INNER JOIN"


requete &" VoitConc ON RefAnno.[N°VoitConc] VoitConc.[N°VoitConc] INNER JOIN"


requete &" Carburant ON VoitAnno.[N°Carburant] Carburant.[N°Carburant] INNER JOIN"


requete &" VoitMar ON VoitAnno.[N°VoitMar] VoitMar.[N°VoitMar] INNER JOIN"


requete &" VoitMod ON VoitAnno.[N°VoitMod] VoitMod.[N°VoitMod] INNER JOIN"


requete &" VoitCat ON VoitAnno.[N°VoitCat] VoitCat.[N°VoitCat]"


requete &" WHERE (VoitConc.RefConc '" & Application("RefConc") & "') AND (RefAnno.Publique = 1)"


If ViewState("IdMarqVeh") <> "" Then requete &" AND (VoitAnno.[N°VoitMar] " & ViewState("IdMarqVeh") & ")"


If ViewState("IdModVeh") <> "" Then requete &" AND (VoitAnno.[N°VoitMod] " & ViewState("IdModVeh") & ")"


If ViewState("IdCarbuVeh") <> "" Then requete &" AND (Carburant.[N°Carburant] " & ViewState("IdCarbuVeh") & ")"


If ViewState("IdBudVeh") <> "" Then requete &= " AND (RefAnno.PrixE <= " & ViewState("IdBudVeh") & ") OR (RefAnno.PrixInternetE <= " & ViewState("IdBudVeh") & ")"


Case Is = 2


Case Is = 3


Case Else


afficheVeh = 0


End Select


If afficheVeh <> 0 Then


ds = LibData.AccesBD.GetDataSet(requete)


datagridVeh1.DataSource = ds.Tables(0).DefaultView


datagridVeh1.DataBind()


ds.Clear()


End If


End Sub




TR

7 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
tout depend de ton code aspx

mais c'est souvent plus simple la bas, et c'est apparement plus rapide aussi.

donc pour faire ca, c'est assez simple

" alt="text" />


<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

<SELECTEDITEMSTYLE BackColor= "Gold" Font-Names="Arial" Font-Size="Smaller"></SELECTEDITEMSTYLE> <HEADERSTYLE BackColor ="Silver" Font-Names= "Arial" Font-Size="Smaller" ForeColor="Black" VerticalAlign="Middle" HorizontalAlign="Center"></HEADERSTYLE><COLUMNS> <HEADERSTYLE BackColor ="#FFCC66"></HEADERSTYLE></COLUMNS>

<SELECTEDITEMSTYLE BackColor= "Gold" Font-Names="Arial" Font-Size="Smaller"></SELECTEDITEMSTYLE> <HEADERSTYLE BackColor ="Silver" Font-Names= "Arial" Font-Size="Smaller" ForeColor="Black" VerticalAlign="Middle" HorizontalAlign="Center"></HEADERSTYLE><COLUMNS> <HEADERSTYLE BackColor ="#FFCC66"></HEADERSTYLE></COLUMNS>

<SELECTEDITEMSTYLE BackColor= "Gold" Font-Names="Arial" Font-Size="Smaller"></SELECTEDITEMSTYLE> <HEADERSTYLE BackColor ="Silver" Font-Names= "Arial" Font-Size="Smaller" ForeColor="Black" VerticalAlign="Middle" HorizontalAlign="Center"></HEADERSTYLE><COLUMNS> <HEADERSTYLE BackColor ="#FFCC66"></HEADERSTYLE></COLUMNS>

<SELECTEDITEMSTYLE BackColor= "Gold" Font-Names="Arial" Font-Size="Smaller"></SELECTEDITEMSTYLE> <HEADERSTYLE BackColor ="Silver" Font-Names= "Arial" Font-Size="Smaller" ForeColor="Black" VerticalAlign="Middle" HorizontalAlign="Center"></HEADERSTYLE><COLUMNS> <HEADERSTYLE BackColor ="#FFCC66"></HEADERSTYLE></COLUMNS>

<SELECTEDITEMSTYLE BackColor= "Gold" Font-Names="Arial" Font-Size="Smaller"></SELECTEDITEMSTYLE> <HEADERSTYLE BackColor ="Silver" Font-Names= "Arial" Font-Size="Smaller" ForeColor="Black" VerticalAlign="Middle" HorizontalAlign="Center"></HEADERSTYLE><COLUMNS> <HEADERSTYLE BackColor ="#FFCC66"></HEADERSTYLE></COLUMNS>

<SELECTEDITEMSTYLE BackColor= "Gold" Font-Names="Arial" Font-Size="Smaller"></SELECTEDITEMSTYLE> <HEADERSTYLE BackColor ="Silver" Font-Names= "Arial" Font-Size="Smaller" ForeColor="Black" VerticalAlign="Middle" HorizontalAlign="Center"></HEADERSTYLE><COLUMNS> <HEADERSTYLE BackColor ="#FFCC66"></HEADERSTYLE></COLUMNS>

<SELECTEDITEMSTYLE BackColor= "Gold" Font-Names="Arial" Font-Size="Smaller"></SELECTEDITEMSTYLE> <HEADERSTYLE BackColor ="Silver" Font-Names= "Arial" Font-Size="Smaller" ForeColor="Black" VerticalAlign="Middle" HorizontalAlign="Center"></HEADERSTYLE><COLUMNS> <HEADERSTYLE BackColor ="#FFCC66"></HEADERSTYLE></COLUMNS>

Merci pour ta réponse rapide. Voici mon code aspx concernant le datagrid. Je pense que le code en rouge pour afficher une image dans une colonne de mon datagrid n'est pas approprié. peux-tu me dire la syntaxe exacte SVP ? Merci d'avance pour tout.

<SelectedItemStyle Font-Size= "Smaller" Font-Names="Arial" BackColor="Gold"></SelectedItemStyle>


<HeaderStyle Font-Size ="Smaller" Font-Names= "Arial" HorizontalAlign="Center" ForeColor="Black" VerticalAlign="Middle" BackColor="Silver"></HeaderStyle>
<Columns>












<HeaderStyle BackColor ="#FFCC66"></HeaderStyle>


</Columns>

TR
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
J'ai jamais bien aimé le datagrid, donc je connais pas sa syntaxe par coeur, et pusi ca fait 6 mois que je bosse sur .net2 et le datagrid n'est plus utile pour du web.

de mémoire et beaucoup au pif :p

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 Cyril,

Moi je commence avec .NET avant je faisait de l'ASP. Va voir ce site il faut que je le transforme en .net (www.locomotionmarket.com) et j'en ai d'autres... (bonjour la tache)

Mais dis moi tu soulèves un problème important le .net2 n'a plus besoin de datagrid alors c'est quoi le remplacant? Il faut que je télécharge .net2 ?
A+
Thierry
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
tout ce qui passe sur .net1.1 passera en .net 2, le datagrid existe, mais n'est plus proposé par défaut dans la boite à outil, il y a un nouveau remplacant, le gridview, qui est moins complet mais souvent largement suffisant

pour ce qui est de .net 2 pour l'instant on en est a la beta2, le framework en lui meme semble etre OK, mais il reste quelques bugs dans Visual Studio 2005, la version finale, sera pour fin de l'année.


<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,
Il y a un problème avec le container ? L'erreur le container n'est pas déclarer s'affiche?
En fait je souhaite aficher une image avec un lien qui ouvre une nouvelle fenêtre.
A+

<% if Container.Dataitem("Image") = 0 then %>
" alt="photo"/>
<%End if%>

<% if Container.Dataitem("Image") = 1 then %>
Voci l'erreur
Message d'erreur du compilateur: BC30451: Le nom 'Container' n'est pas déclaré.

Erreur source:


Ligne 53 : 
Ligne 54 : 
Ligne 55 : <% if Container.Dataitem("Image")  = 0 then %>
Ligne 56 : " alt="photo"/>
Ligne 57 : <%End if%>



Thierry
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
arf, je viens de relire mon message, je voulais dire si ca fonctionne pas, il faut utiliser

<%#IIF(test, valtrue, valfalse)%> ;)

car c'est le # qui fait le container.dataitem

j'ai pas le temps d'en dire plus, mais j'espere que ca va t'aider


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