Image dans gridview [Résolu]

Messages postés
160
Date d'inscription
mardi 17 janvier 2006
Dernière intervention
9 décembre 2018
- - Dernière réponse : cs_Myke
Messages postés
138
Date d'inscription
mercredi 5 février 2003
Dernière intervention
2 février 2010
- 4 janv. 2008 à 15:26
Bonjour

j'ai une table SQL qui contient une champs image, j ai fait ma requete dans un data reader qui rempli mon gridviev mais mon champs image apparait avce une X.
je voudrais dans mon gridview afficher l'image au meme titre que mes autre champs dans une colonne de mon gridview  . 

merci de votre aide

nicolas
Afficher la suite 

Votre réponse

14 réponses

Meilleure réponse
Messages postés
138
Date d'inscription
mercredi 5 février 2003
Dernière intervention
2 février 2010
3
Merci
Image1.ImageUrl = Page.ResolveUrl("loadimage?Id=" + CSTR(id))

Myke

Merci cs_Myke 3

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

Codes Sources a aidé 105 internautes ce mois-ci

Commenter la réponse de cs_Myke
Messages postés
98
Date d'inscription
samedi 17 septembre 2005
Dernière intervention
24 mai 2010
1
Merci
Bonjour;

je vais essayer de décrire la procédure en détail.

Au début, t'as un SqlDataSource et un GridView.

1 - Je te conseille de mettre le chemin de l'image dans champ image de ta Table SQL (qui va correspondre à un type varchar) ;
2 - Ouvre le Smart Tag de GridView puis tu lui associes le SqlDataSource correspondant ;
3 - Toujours sur le Smart Tag, clique sur Edit Columns ;
4 - Dans la zone Selected fields, sélectionne chaque champ puis clique sur le lien : Convert this flied into a TemplateField (tous les champs) ;
5 - Valide tout ça à l'aide du bouton Ok ;
6 - Toujours sur le Smart Tag, clique sur Edit Templates ;
7 - Ouvre alors le Smart Tag de la fenêtre du Template de GridView, puis ouvre la DropDownList ;
8 - Choisis ta colonne, puis clique sur Item template (tu vas trouvé qu'à l'origine c'est un Label) ;
9 - Tu supprimes ce Label et avec un Glisser/Déplacer, tu ramènes un contrôle Image (redimensionne-le à ta guise : Height : 75px et Width : 70px comme exemple) ;
10 - Sur le Smart Tag du contrôle Image, clique sur DataBindings... ;
11 - Dans le champs : Bindable properties, sélectionne ImageUrl ;
12 - A droite, sélectionne le RadioButton : Field binding ;
13 - Sur la DropDownList, sélectionne ton champ Image (qui contient le chemin de l'image) ;
14 - Valide avec Ok ;
15 - Sur le Smart Tag du GridView, End Template Editing ;
16 - Exécute et t'auras ton résultat.

Ci-dessus, j'ai essayé d'exliquer pas à pas la procédure, tiens moi au courant du résultat et si t'as besoin d'aide, n'hésite pas.

CSharp.
Commenter la réponse de CSharpJSharp
Messages postés
160
Date d'inscription
mardi 17 janvier 2006
Dernière intervention
9 décembre 2018
0
Merci
merci

mais je crois que je me suis mal explique le champs image ne comtient pas le chemin d'une image
mais c'est un chanps de type image, l'image ce trouve dans ma table sql

nicolas
Commenter la réponse de garnier54
Messages postés
98
Date d'inscription
samedi 17 septembre 2005
Dernière intervention
24 mai 2010
0
Merci
J'ai bien compris ton message, mais je t'ai conseillé de le faire ainsi... C'est une méthode généralisée où un client pourrait poster même des trucs avec des images et le mieux c'est que la table SQL contient le chemin de l'image.

Je vais voir une solution à ta proposition dont le sens où tu pourras mettre l'image directement dans ta table SQL.

à bientôt.
Commenter la réponse de CSharpJSharp
Messages postés
160
Date d'inscription
mardi 17 janvier 2006
Dernière intervention
9 décembre 2018
0
Merci
merci

mais ca ne marche pas dans mon cas, car j'ai deja un fichier constitué (sans un champs qui contient le chemin) et je desire conserver cette methode plus pratique pour mon developpement. les champs images qui sont dans ma table sont

id_foto         type image     mes fotos
id_type         type varchar  type de l'image   (image/pjpg)

merci de ton aide
nicolas
Commenter la réponse de garnier54
Messages postés
138
Date d'inscription
mercredi 5 février 2003
Dernière intervention
2 février 2010
0
Merci
Avec cette exemple je crois que tu peux comprendre copie ce code dans un fichier deafult.aspx




Partial
Class _Default



Inherits
System.Web.UI.Page




Private
_MyPicture

As
Drawing.Bitmap




Private



Function
GetBytesFromBitmap(

ByVal
Img

As
Drawing.Bitmap)

As



Byte
()




Dim
ms

As



New
IO.MemoryStream()




Try



Img.Save(ms, Img.RawFormat)







Return
ms.GetBuffer


Catch
ex

As
Exception


Throw



New
Exception(ex.Message)


Finally

ms.Close()


ms.Dispose()







End



Try






End



Function






Protected



Sub
Button1_Click(

ByVal
sender

As



Object
,

ByVal
e

As
System.EventArgs)

Handles
Button1.Click


REM - Recuperation du chemin du fichier






Dim
Path

As



String
=

Me
.FileUpload1.PostedFile.FileName


REM - Construction du Bitmap






If



String
.IsNullOrEmpty(Path) =

False



Then






Try






Me
._MyPicture =

New
Drawing.Bitmap(Path)


Catch
ex

As
Exception


Throw



New
ApplicationException(

"Photo non valide"
)


End



Try







End



If 








REM ------CONVERSION EN BYTES POUR STOCKER DANS BD SQL






Dim
MyBytes()

As



Byte
=

Me
.GetBytesFromBitmap(

Me
._MyPicture) 


REM -- A CE POINT C'EST COMME SI TU AVAIS AVAIT UN CHAMP BLOB EN MEMOIRE






REM -----CONVERSION EN IMAGE A PATIR DES BYTES

Response.BinaryWrite(MyBytes)







End



SubEnd





Class

<%

@
Page
Language="VB"
AutoEventWireup="false"
CodeFile="Default.aspx.vb"
Inherits="_Default" %>
<!

DOCTYPEhtmlPUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><

htmlxmlns="http://www.w3.org/1999/xhtml"><

headrunat="server">

<title>Untitled Page
</title></

head><

body>

<form
id="form1"
runat="server">

<div>

<asp:FileUpload
ID="FileUpload1"
runat="server"
/>

<br
/>

<br
/>

<br
/>

<br
/>

<br
/>

<br
/>

<asp:Button
ID="Button1"
runat="server"
Text="Charger la photo"
/></div>

</form></

body></

html>
Commenter la réponse de cs_Myke
Messages postés
138
Date d'inscription
mercredi 5 février 2003
Dernière intervention
2 février 2010
0
Merci
Avec cette exemple je crois que tu peux comprendre copie ce code dans un fichier deafult.aspx




Partial
Class _Default



Inherits
System.Web.UI.Page




Private
_MyPicture

As
Drawing.Bitmap




Private



Function
GetBytesFromBitmap(

ByVal
Img

As
Drawing.Bitmap)

As



Byte
()




Dim
ms

As



New
IO.MemoryStream()




Try



Img.Save(ms, Img.RawFormat)







Return
ms.GetBuffer


Catch
ex

As
Exception


Throw



New
Exception(ex.Message)


Finally

ms.Close()


ms.Dispose()







End



Try






End



Function






Protected



Sub
Button1_Click(

ByVal
sender

As



Object
,

ByVal
e

As
System.EventArgs)

Handles
Button1.Click


REM - Recuperation du chemin du fichier






Dim
Path

As



String
=

Me
.FileUpload1.PostedFile.FileName


REM - Construction du Bitmap






If



String
.IsNullOrEmpty(Path) =

False



Then






Try






Me
._MyPicture =

New
Drawing.Bitmap(Path)


Catch
ex

As
Exception


Throw



New
ApplicationException(

"Photo non valide"
)


End



Try







End



If 








REM ------CONVERSION EN BYTES POUR STOCKER DANS BD SQL






Dim
MyBytes()

As



Byte
=

Me
.GetBytesFromBitmap(

Me
._MyPicture) 


REM -- A CE POINT C'EST COMME SI TU AVAIS AVAIT UN CHAMP BLOB EN MEMOIRE






REM -----CONVERSION EN IMAGE A PATIR DES BYTES

Response.BinaryWrite(MyBytes)







End



SubEnd





Class

<%

@
Page
Language="VB"
AutoEventWireup="false"
CodeFile="Default.aspx.vb"
Inherits="_Default" %>
<!

DOCTYPEhtmlPUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><

htmlxmlns="http://www.w3.org/1999/xhtml"><

headrunat="server">

<title>Untitled Page
</title></

head><

body>

<form
id="form1"
runat="server">

<div>

<asp:FileUpload
ID="FileUpload1"
runat="server"
/>

<br
/>

<br
/>

<br
/>

<br
/>

<br
/>

<br
/>

<asp:Button
ID="Button1"
runat="server"
Text="Charger la photo"
/></div>

</form></

body></

html>
Commenter la réponse de cs_Myke
Messages postés
160
Date d'inscription
mardi 17 janvier 2006
Dernière intervention
9 décembre 2018
0
Merci
merci

je suis desole mais dans ton exemple l'image n'apparait pas dans un gridview

j 'ai ma table

id                  type integer
mon              type varchar
id_foto         type image     sa foto
id_type         type varchar  type de l'image   (image/pjpg)

et je voudrais dans mon gridview

id   nom   et       ici la foto de la personne

merci
nicolas
Commenter la réponse de garnier54
Messages postés
160
Date d'inscription
mardi 17 janvier 2006
Dernière intervention
9 décembre 2018
0
Merci
bonjour et merci

ton exenple marche bien et ma permis de comprendre le fonctionnement, y a t il une moyen pour envioyer l image binary Response.BinaryWrite(MyBytes) nom pas a l'ecran mais dans un controle image

nicolas
Commenter la réponse de garnier54
Messages postés
138
Date d'inscription
mercredi 5 février 2003
Dernière intervention
2 février 2010
0
Merci
Tu te créée une page aspx : GetMyPicture.aspx

Protected

Sub Page_Load(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.Load

If
My.Request.QueryString(
"Id")
IsNot

Nothing

Then

Dim Myid as integer = My.Request.QueryString("Id"
)

Dim MyBytes()
As
Byte =  On recherche dans la bd le champ blob = select photo from MYBD where id = MyId
Response.BinaryWrite(MyBytes)

End
If
End
Sub

-------------------------------------------------------------------------------------

1) Lors du DataBinding de ton GridView tu recupere le controle Image
2) Image1.ImageUrl = Page.ResolveUrl(
"GetMyPicture?Id=" + Id_De_La_Photo)Donne moi des nouvelles !

Myke
Commenter la réponse de cs_Myke
Messages postés
160
Date d'inscription
mardi 17 janvier 2006
Dernière intervention
9 décembre 2018
0
Merci
merci j'y suis presque

sur la ligne

Image1.ImageUrl = Page.ResolveUrl("loadimage?Id=" + id)

j 'ai l'erreur

La conversion de la chaîne "loadimage?Id=" en type 'Double' n'est pas valide.

loadimage.aspx retourne bien une image

merci
Commenter la réponse de garnier54
Messages postés
160
Date d'inscription
mardi 17 janvier 2006
Dernière intervention
9 décembre 2018
0
Merci
merci de ton aide ca marche !!


je peux enfin lire mes images et en ajouter en reseau ça marche nickel
j 'ai simplement ajouté . aspx au nom de la page aspx

Image1.ImageUrl = Page.ResolveUrl("loadimage.aspx?Id=" + CSTR(id))

nicolas
Commenter la réponse de garnier54
Messages postés
138
Date d'inscription
mercredi 5 février 2003
Dernière intervention
2 février 2010
0
Merci
Tu as raison en relisantle code que je t'avais envoye j'ai remarquer que le ASPX n'était pas présent. Désolé...Mais au moins c'est résolu

Myke
Commenter la réponse de cs_Myke
Messages postés
138
Date d'inscription
mercredi 5 février 2003
Dernière intervention
2 février 2010
0
Merci
Voila la souce complete pour les intéréssé : http://www.aspfr.com/codes/INSERER-PHOTO-DANS-CHAMP-BLOB-IMAGE-DANS-TABLE_45289.aspx

Myke
Commenter la réponse de cs_Myke

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.