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

ASP.NET Discussion :

GridView et List


Sujet :

ASP.NET

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 41
    Par défaut GridView et List
    Bonjour,

    J'ai récupéré des méthodes afin de mettre en place une connexion à une BDD dans une classe particulière connect_bd. Dans l'ensemble, cela fonctionne.

    En revanche, la récupération des informations d'une table de la BDD se fait dans une liste à l'intérieur de la classe connect_bd.
    Ensuite j'essaye de récupérer cette liste pour l'afficher via une GridView. C'est là que j'ai un problème, voici le code-behind de la page :
    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
    protected void Page_Load(object sender, EventArgs e)
            {
                List<string>[] list;
     
                list = db_connect.Select();
     
                for (int i = 0; i < list[0].Count; i++)
                {
                    GridView1.Rows[i].Cells[0].Text = list[0][i];
                    GridView1.Rows[i].Cells[0].Text = list[1][i];
                    GridView1.Rows[i].Cells[0].Text = list[2][i];
                    GridView1.Rows[i].Cells[0].Text = list[3][i];
                    GridView1.Rows[i].Cells[0].Text = list[4][i];
                    GridView1.Rows[i].Cells[0].Text = list[5][i];
                }
            }
    Lorsque j'essaye d'afficher la page, j'ai l'erreur :
    L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection.
    D'après ce que j'ai compris de mes lectures sur le net, j'ai un problème d'instanciation au niveau du GridView. Mais vraiment, là, je sèche, est-ce que qqn pourrait me dire ce que je dois rajouter pour faire fonctionner ce code ?

    Merci d'avance

    Philomelo

  2. #2
    Membre Expert Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Par défaut
    Bonsoir,

    ta variable nommée list est un tableau de List<string>.
    Tu fais une boucle sur la première list<string> de ton tableau de list<string>.
    mais dans ta boucle tu ne peux pas savoir si ce code ne renvoie pas l'exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     GridView1.Rows[i].Cells[0].Text = list[0][i];
                    GridView1.Rows[i].Cells[0].Text = list[1][i];
                    GridView1.Rows[i].Cells[0].Text = list[2][i];
                    GridView1.Rows[i].Cells[0].Text = list[3][i];
                    GridView1.Rows[i].Cells[0].Text = list[4][i];
                    GridView1.Rows[i].Cells[0].Text = list[5][i];
    essaye plutôt ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     GridView1.Rows[i].Cells[0].Text = list[0][i];
                    GridView1.Rows[i].Cells[0].Text = list[0][i];
                    GridView1.Rows[i].Cells[0].Text = list[0][i];
                    GridView1.Rows[i].Cells[0].Text = list[0][i];
                    GridView1.Rows[i].Cells[0].Text = list[0][i];
                    GridView1.Rows[i].Cells[0].Text = list[0][i];
    si ce n'est pas ce que tu veux revoies ta conception!

    Bon dev

  3. #3
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2008
    Messages : 231
    Par défaut
    Je suis d'accord ton problème vient de l'utilisation de ta list essaye plutot de faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    protected void Page_Load(object sender, EventArgs e)
            {
                List<string>[] list;
     
                list = db_connect.Select();
     
                for (int i = 0; i < list[0].Count; i++)
                {
                    GridView1.Rows[i].Cells[0].Text = list[i].ToString();
                }
            }
    Voici l'explication :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    GridView1.Rows[i].Cells[0].Text
    Dans ta GridView1, à la ligne (Rows) numéro "i" (ta variable), dans la cellule numéro 0, tu vas écrire ton texte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    list[i].ToString()
    Tu vas récupérer le numéro "i" de ta liste et tu transformes le résultat en String (au cas ou)

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 41
    Par défaut
    Effectivement j'étais passé complétement à coté du problème d'incrémentation... cela se voit pourtant comme le nez au milieu de la figure...

    Quoiqu'il en soit, j'ai corrigé le problème, j'ai suivi les conseils que vous m'avez fourni et pourtant j'obtiens toujours le même pb d'index hors limites.

    J'ai même modifié mon code (de manière judicieuse j'espère ) comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    protected void Page_Load(object sender, EventArgs e)
            {
                List<string>[] list;
                list = db_connect.Select();
     
                GridView1.Rows[0].Cells[0].Text = list[0].ToString();
            }
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    protected void Page_Load(object sender, EventArgs e)
            {
                List<string>[] list;
                list = db_connect.Select();
     
                GridView1.Rows[0].Cells[0].Text = list[0][0];
            }
    Et j'obtiens toujours la même erreur d'index.

    Est-ce que le pb pourrait venir d'ailleurs ?

  5. #5
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2008
    Messages : 231
    Par défaut
    Attend un List<string> est déjà un tableau tu n'as pas besoin d'en refaire un tableau !!

    "List<String>[]" et utilise "List<String>" et tu passeras d'élément en élément comme ça List[0], List[1] etc.

    Si tu as besoin de l'équivalent de ça : String[][] c'est à dire un tableau à deux dimension, une matrice à deux dimensions (on peut lui trouver plein de nom) tu peux faire ça => List<List<String>> ce qui revient à faire une liste dans une liste.

    Explique ce que tu veux faire avec ta liste

Discussions similaires

  1. gridview et list d'objet
    Par topolino dans le forum ASP.NET
    Réponses: 5
    Dernier message: 07/10/2008, 16h17
  2. Réponses: 3
    Dernier message: 16/09/2008, 15h28
  3. gridview objectdatasource et list
    Par xian21 dans le forum C#
    Réponses: 1
    Dernier message: 12/09/2008, 14h50
  4. Afficher une liste avec photo dans un gridview
    Par peregna2007 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 05/07/2008, 16h52
  5. Remplir une gridview à partir d'une list
    Par gentil dans le forum ASP.NET
    Réponses: 3
    Dernier message: 03/06/2008, 14h09

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