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 :

Problème index Gridview


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 111
    Par défaut Problème index Gridview
    Bonjour,
    j'ai actuellement un gridview en ASP qui fonctionne bien et qui récupère et affiche bien les valeurs de ma requête avec mon sqlDataSource.
    Mon problème est que sur mon gridview qui contient 5 colonnes lorsque je fait ceci, il y a une erreur d'index :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    			
    /* Quand je test sur les cellules en index[1] il y a une erreur d'index incompréhensible car il y a bien 5 colonnes remplies*/
    if(e.Row.Cells[1].Text.Equals("mkne"))
    {
    e.Row.Cells[1].Text = System.Drawing.Color.LightBlue;
    }
    Je ne vois vraiment pas d'où cela peut provenir car la syntaxe est bonne puisque cela fonctionne en mettant index[0], et que la colonne d'index[1] est bien présente. (Ça ne marche pas non plus avec 2, 3 et 4. Ça fonctionne seulement en index[0]).

    D'ailleurs la valeur ("mkne") existe bel et bien dans la colonne 2, et j'ai bien essayé d'inverser les colonnes pour voir et c'est le même problème.

    Si vous avez une petite idée, je suis preneur, parce que c'est tout bête mais je vois vraiment pas le problème.

    Sinon l'erreur indique :
    ArgumentOutOfRangeException was unhandled by user code
    L'argument spécifié n'était pas dans les limites de la plage des valeurs valides.
    Nom du paramètre : index

    Merci beaucoup si vous avez la moindre idée.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2010
    Messages : 164
    Par défaut
    Dans quel évènement fais-tu ça ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 111
    Par défaut
    Dans mon page load j'ai mis :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Gridview1.RowDataBound += new GridViewRowEventHandler(Gridview1_RowDataBound)

    Ensuite mon code est situé CodeBehind et il fonctionne bien mais que en index[0]...

  4. #4
    Membre actif
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2011
    Messages : 53
    Par défaut
    Bonjour,

    petite question ton "e" représente quoi? le gridView?

    Bon Code

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 111
    Par défaut
    En fait j'ai une méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    protected void Gridview1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
    //c'est ici qu'il ya mon code qui est dans mon fichier aspx.cs
    }

  6. #6
    Membre actif
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2011
    Messages : 53
    Par défaut
    Bonjour,

    Est-ce que ça fonctionne si tu fais comme ci-dessous?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(tonGridView.Rows[0].Cells[1].Text.Equals("mkne"))
    {
    tonGridView.Rows[0].Cells[1].Text = System.Drawing.Color.LightBlue;
    }

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 111
    Par défaut
    Nan le problème est le même :/

    Enfin pas exactement, l'erreur est :
    L'index était hors limites. Il ne doit pas être négatif et doit être inferieur a la taille de la collection.
    Nom du paramètre : Index


    Ça ressemble mais c'est pas exactement la même

  8. #8
    Membre actif
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2011
    Messages : 53
    Par défaut
    Dommage,

    il doit y avoir un problème avec tes colonnes alors, t'as essayer de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int nbr1 = tonGridView.Rows.Count;
    int nbr2 = tonGridView.Rows[0].Cells.Count;
    et d'afficher la variable nbr1 et nbr2 pour voir le nombre de colonne et de ligne que t'as

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 111
    Par défaut
    nbr1 affiche 128.

    nbr2 fait l'erreur de mon précédent message avec l'index hors limites.


    Sinon j'avais essayer ça et ça me retourne le nombre de colonnes ( 5 ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int nbr3= e.Row.Cells.Count      // affiche 5

  10. #10
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Par défaut
    Bonjour,

    Et si tu essayes de parcourir les lignes et les colonnes, ça donne quoi?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    foreach(GridViewRow row in tonGridView.Rows)
    {
    for(int i = 0;i<tonGridView.Colums.Count;i++)
    {
     
    }
    }

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 111
    Par défaut
    en faisant cela j'obtiens i = 5 quand je l'affiche ce qui est normal car jai 5 colonnes

  12. #12
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Par défaut
    Essayes de rajouter ton test à l'intérieur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(row.Cells[i].Text.Equals("mkne"))
    {
        row.Cells[i].Text = System.Drawing.Color.LightBlue;
    }

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 111
    Par défaut
    Merci beaucoup ça fonctionne parfaitement.

    Une énorme MERCI a vous deux d'avoir pris le temps de comprendre mon problème.

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

Discussions similaires

  1. problème Index de colonne
    Par fiatlux dans le forum JDBC
    Réponses: 7
    Dernier message: 13/12/2007, 15h33
  2. [ASP.NET] Problème de gridview
    Par castaka dans le forum ASP.NET
    Réponses: 2
    Dernier message: 11/10/2007, 16h23
  3. Problème index Full text
    Par fumesec dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 29/09/2007, 09h59
  4. Problème index groupBox
    Par Hurin dans le forum C#
    Réponses: 7
    Dernier message: 23/08/2007, 13h39
  5. Problème taille gridview quand update
    Par lolymeupy dans le forum ASP.NET
    Réponses: 0
    Dernier message: 16/08/2007, 10h40

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