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 :

erreur C# svp !


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 79
    Par défaut erreur C# svp !
    L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection.
    Nom du paramètre : index

    voici le bout de code qui fait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string productId = Convert.ToString(GridView1.DataKeys[row.RowIndex].Value);

  2. #2
    Membre éclairé Avatar de Gregory.M
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 684
    Par défaut
    Le message d'erreur est assez clair, row.rowindex est null.
    tu as cliqué sur une ligne qui existe pas ou quelque chose comme ca.


    tu dois mettre ca au début de ta méthode pour éviter cette erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(row.index == -1)
    return;

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 79
    Par défaut
    que faut -il faire pour quil soit pas null ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 79
    Par défaut
    voici ce que jai fais et ca marche pas !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     if (row.RowIndex == -1)
                        {
                            return;
                        }
                        else
                        {
                            string productId = Convert.ToString(GridView1.DataKeys[row.RowIndex].Value);

  5. #5
    Membre émérite
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Par défaut
    tu récupère comment l'objet row ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 79
    Par défaut
    je le recupere comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                GridViewRow row = GridView1.Rows[i];
            }
               string productId = Convert.ToString(GridView1.DataKeys     [row.RowIndex].Value);

  7. #7
    Membre émérite
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Par défaut
    Citation Envoyé par Djclo Voir le message
    je le recupere comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                GridViewRow row = GridView1.Rows[i];
            }
               string productId = Convert.ToString(GridView1.DataKeys     [row.RowIndex].Value);
    C'est vraiment le code que tu utilises ???
    Ta boucle ne sert à rien là !

    Cela n'explique quand même pas pourquoi l'index n'est pas bon...

  8. #8
    Membre éprouvé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Par défaut
    Essaie ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    string productId = Convert.ToString(GridView1.DataKey[row.RowIndex].Values(0));
    Si ta DataKeys est la première,!!

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 79
    Par défaut
    ca amarche pas !

  10. #10
    Membre émérite
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Par défaut
    Euh ! Question con !

    tu as bien définis une (ou des) clé(s) dans ta grille ?

  11. #11
    Membre éprouvé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Par défaut
    Ce bout de code est définit dans quelle méthode ???

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 79
    Par défaut
    ah si je lai defini en tant datakeynames !

  13. #13
    Membre émérite
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Par défaut
    A priori ce la ne vient pas de l'index de ta row.

    Je ne vois qu'un problème au niveau des clés

    Vérifies ce que tu as mis dans DataKeyNames

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 79
    Par défaut
    ce bout de code est dans cette methode

    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
    protected void addToCart_Command(object sender, CommandEventArgs e)
        {
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                GridViewRow row = GridView1.Rows[i];
                bool isChecked = ((CheckBox)row.FindControl("_chkSelect")).Checked;
                if (isChecked)
                {
                   if (row.RowIndex == -1)
                      {
                        if (e.CommandName == "add")
                          {
                            string productId = Convert.ToString(GridView1.DataKeys[row.RowIndex].Value);
                           // ajouter le produit au panier
                            ShoppingCartAccess.AddItem(productId);
                          }
                      }

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 79
    Par défaut
    le DataKeyNames est bien present :

    <asp:GridView AllowPaging="true"
    DataKeyNames="ProductID"
    OnPageIndexChanging="ChangePage_PageIndexChanging"
    PageSize="3"
    Width="100%"
    ID="GridView1" runat="server"
    AllowSorting="True"
    AutoGenerateColumns="False"
    CellPadding="4"
    ForeColor="#333333"
    GridLines="None">
    <Columns>
    <asp:TemplateField HeaderText="Sélection" HeaderStyle-Font-Size="Small">
    <ItemTemplate>
    <asp:CheckBox ID="_chkSelect" runat="server" />
    </ItemTemplate>
    </asp:TemplateField>

  16. #16
    Membre émérite
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Par défaut
    Citation Envoyé par Djclo Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       // Normalement, ce test est inutile, RowIndex ne peut pas être égale à -1
       if (row.RowIndex == -1)



  17. #17
    Membre émérite
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Par défaut
    Citation Envoyé par Djclo Voir le message
    le DataKeyNames est bien present :

    <asp:GridView AllowPaging="true"
    DataKeyNames="ProductID"
    OnPageIndexChanging="ChangePage_PageIndexChanging"
    PageSize="3"
    Width="100%"
    ID="GridView1" runat="server"
    AllowSorting="True"
    AutoGenerateColumns="False"
    CellPadding="4"
    ForeColor="#333333"
    GridLines="None">
    <Columns>
    <asp:TemplateField HeaderText="Sélection" HeaderStyle-Font-Size="Small">
    <ItemTemplate>
    <asp:CheckBox ID="_chkSelect" runat="server" />
    </ItemTemplate>
    </asp:TemplateField>
    Et dans ta source de donnée, tu as bien une colonne qui s'appelle ProductID ?

  18. #18
    Membre émérite
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Par défaut
    Essaye de définir la propriété datakeynames après avoir défini la source de données.

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 79
    Par défaut
    jai une colonne ProductID...

    Je ssaye de chercher de mon coté

  20. #20
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 81
    Par défaut Essaye ca
    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
    protected void addToCart_Command(object sender, CommandEventArgs e)
        {
            for (int i = 0; i < GridView1.Rows.Count - 1; i++)
            {
                GridViewRow row = GridView1.Rows[i];
                bool isChecked = ((CheckBox)row.FindControl("_chkSelect")).Checked;
                if (isChecked)
                {
                   if (row.RowIndex == -1)
                      {
                        if (e.CommandName == "add")
                          {
                            string productId = Convert.ToString(GridView1.DataKeys[row.RowIndex].Value);
                           // ajouter le produit au panier
                            ShoppingCartAccess.AddItem(productId);
                          }
                      }

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/05/2006, 22h41
  2. aide SVP : erreur de connection, tns protocol
    Par isidore dans le forum Connexions aux bases de données
    Réponses: 5
    Dernier message: 04/04/2006, 16h16
  3. Je vois pas d'où vient mon erreur!! Aidez moi SVP
    Par liliboms dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 04/04/2005, 08h25

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