IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web avec .NET Discussion :

Image dans une datatable afficher dans gridview code behind [Débutant]


Sujet :

Développement Web avec .NET

  1. #1
    Membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2015
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2015
    Messages : 98
    Points : 59
    Points
    59
    Par défaut Image dans une datatable afficher dans gridview code behind
    Bonjour j'ai un petit soucis pour mettre une image dans un datatable que j'affiche ensuite dans un gridview.

    Aucune erreur levé, la colonne avec l'image n’apparaît pas a l'écran, les 3 autres oui. c'est tout

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
     //selectionne une image a partir de son emplacement
                        Image img = new Image();
                        img.ImageUrl = ResolveUrl("~/images/true.png");
     
     
     
     
                     // creation d'une nouvelle datatable 
                     DataTable TheReponse = new DataTable();
     
                    // ajout de 4 colonnes
                    DataColumn Colon1 = TheReponse.Columns.Add("id", typeof(Int32));
                                     Colon1.AllowDBNull = false;
                    DataColumn Colon2 = TheReponse.Columns.Add("Question", typeof(String));
                    DataColumn Colon3 = TheReponse.Columns.Add("Reponse", typeof(String));
                    DataColumn Colon4 = TheReponse.Columns.Add("Image", typeof(Image));
     
                    // pour chaque entrée de la base 
                        for (int i = TheReponse.Rows.Count; i >= 0; i--)
                        {
                         DataRow newRow = TheReponse.NewRow(); // creation d'une nouvelle ligne avec dans chaque ligne                                                     
                         newRow["id"] = i;  // un index
                         newRow["Question"] = Laquestion;  // La question
                         newRow["Reponse"] = OuiouNON;     // Le choix Oui ou Non selectionné
                         newRow["Image"] = img;    // une image
     
                         TheReponse.Rows.Add(newRow); // On ajoute cette nouvelle ligne à la dataTable The Reponse
                         Session[i.ToString()] = TheReponse; // On créer une session avec l'index de la ligne contenant la table
    Le code fonctionne très bien quant je remplace ma colonne image par un string ou un int et a priori le chemin d'accees a l'image est aussi correct.
    je sèche un peu si vous pouviez m'aider

    merci bien!

  2. #2
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    ton souci ne viendrait-il pas du contrôle de présentation que tu utilises ?
    Perso j'ai fait ce code en WinForm (dgView est un DataGridView) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	DataTable dt = new DataTable();
    	Image img1 = Image.FromFile(@"C:\Work\img1.jpg"),
    		  img2 = Image.FromFile(@"C:\Work\img2.jpg"),
    		  img3 = Image.FromFile(@"C:\Work\img3.jpg");
    	dt.Columns.Add("col1", typeof(Int32));
    	dt.Columns.Add("col2", typeof(String));
    	dt.Columns.Add("col3", typeof(Image));
     
    	dt.Rows.Add(new object[] { 12, "truc", img1 });
    	dt.Rows.Add(new object[] { 34, "machin", img2 });
    	dt.Rows.Add(new object[] { 56, "bidule", img3 });
     
    	dgView.DataSource = dt;
    Mes images s'affichent correctement.
    Plus je connais de langages, plus j'aime le C.

  3. #3
    Membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2015
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2015
    Messages : 98
    Points : 59
    Points
    59
    Par défaut
    En faite je crois que cela vient de ma page aspx .
    Avec ce foutu cliquer/deposer de VS (bien pratique c'est vrai) j'ai pris l'habitude de tous faire dans le code.
    Sur cette page j'ai l'appel à un grid view et rien dedans pas même du code <columns> et je suis dans les propriété sur un autocolumn.

    J'ai tester de créer une colonne image pour voir dans la page aspx, et Alors effectivement ça fonctionne mon image s'affiche mais je me retrouve avec un tableau a 5 colonnes dont la 1ere est une colonne image (celle créer dans l'ASPX) et les 4 autre colonne de mon code behind.

    Je veut bien créer dans la page aspx 4 colonne en "dur" dans le code mais j'ai l'impression que ces colonnes ne communiquent pas avec mon code behind pourtant les noms sont bien les même... Le code behind créer ses 4 colonne et le code de la page aspx les siennes.... Je vais revoir dans les options. De ce que je voit tu utilise un image.fromfile, je vais tester ce que ça donne ce soir.

    merci pour ton aide anouveau

  4. #4
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Pour Image.FromFile(string) : j'ai l'impression qu'en fait on utilise pas la même classe Image. Dans mon cas (System.Drawing.Image) il s'agit d'un classe abstraite, elle ne contient pas de constructeur.

    S'il est question d'un problème spécifique à l'ASP.NET je ne vais pas pouvoir bien aidé, je ne peux pas faire de test. A noter toutefois que si tu veux qu'un contrôle côté client soit associé au contrôle côté serveur il ne faut pas oublier de mettre l'attribut runat="server".

    Enfin, pour avoir fait pas mal d'ASP.NET par le passé : n'utilise jamais le designer pour tes pages, fais tout en mode texte.
    Plus je connais de langages, plus j'aime le C.

  5. #5
    Membre du Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2015
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2015
    Messages : 98
    Points : 59
    Points
    59
    Par défaut
    il falait créer les colonne "en dur" et pas seulement a partir du code behind
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <asp:GridView ID="Rita1" runat="server" CssClass="btn-primary" Width="479px" AutoGenerateColumns="False" ShowHeader="False" BorderStyle="None">
                         <Columns>                                             
                           <asp:BoundField DataField="Question"  HeaderText="B"/>                          
                           <asp:BoundField DataField="Reponse"  HeaderText="C"/>                       
                           <asp:ImageField DataImageUrlField="Image" HeaderText="D"/>                        
                         </Columns>
    c'est résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/02/2014, 15h55
  2. Réponses: 25
    Dernier message: 13/08/2012, 13h50
  3. Réponses: 4
    Dernier message: 18/03/2011, 14h25
  4. Réponses: 3
    Dernier message: 19/07/2006, 14h28
  5. [MySQL] Supprimer une ligne afficher dans une base de donnée
    Par julienchpt dans le forum PHP & Base de données
    Réponses: 31
    Dernier message: 14/10/2005, 15h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo