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 :

exception avec pagination sur gridview


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 159
    Points : 68
    Points
    68
    Par défaut exception avec pagination sur gridview
    Bonjour, j'utilise un gridview que je remplit avec une commende sql, le problème c'est que quand j'active AllowPaging="True" une fois je clique sur le numero de pages pour aller au enregistrements suivant, ca declanche une exception, je ne sais ps comment faire pour remédier à ca.

    Voici l'exception
    Le GridView 'gvproduit' a déclenché un événement PageIndexChanging qui n'était pas géré

    merci d'avance

  2. #2
    Nouveau membre du Club
    Profil pro
    Dev
    Inscrit en
    Février 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Février 2007
    Messages : 38
    Points : 35
    Points
    35
    Par défaut
    comment tu rempli ton gridview avec une requete sql dans code behind et donc avec une datatable, je pense, il faut que tu gere a la main la pagination.
    essai avec ca dans l'evenement du pageindexchanging du datagrid
    :GridView1.PageIndex = e.NewPageIndex;

  3. #3
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 159
    Points : 68
    Points
    68
    Par défaut
    voici la fonction avec laquelle je remplie le gridview dans le code bihind
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     private void chargerGrille()
        {
            connexion con = new connexion();
            con.connecter();
            string cmd = "select produit.*,parametre.libelle famille from produit,parametre where produit.type_produit=parametre.code_type order by produit.type_produit desc";
            DataTable dtgrid = new DataTable();
            OdbcDataAdapter dagrid = new OdbcDataAdapter(cmd, con.BaseCon);
            dagrid.Fill(dtgrid);
            Session["dtgrid"] = dtgrid;
            gvproduit.DataSource = Session["dtgrid"];
            gvproduit.DataBind();
        }
    et la ligne que tu ma donné ou est ce que je doit la mettre

  4. #4
    Nouveau membre du Club
    Profil pro
    Dev
    Inscrit en
    Février 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Février 2007
    Messages : 38
    Points : 35
    Points
    35
    Par défaut
    dans ton gridview, tu a un evenement PageIndexChanging, ajoute une fonction dessus.
    Dans le corp de la fonction tu ajoute ca :

    gvproduit.PageIndex = e.NewPageIndex //pour changer l'index du datagid
    chargerGrille(); //par recharger le datagrid.

  5. #5
    Membre expérimenté
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Points : 1 566
    Points
    1 566
    Par défaut
    Effectivement, si tu remplit ton gridview manuellement, il faudra dans ce cas gerer aussi le paging manuellement.

    Comme a dit moomoon essaie de lmettre ce bout de code dans l'evenement PageIndexChanging de ta gridview

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      gvproduit.PageIndex = e.NewPageIndex;
      gvproduit.DataBind();

  6. #6
    Nouveau membre du Club
    Profil pro
    Dev
    Inscrit en
    Février 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Février 2007
    Messages : 38
    Points : 35
    Points
    35
    Par défaut
    et il faudra aussi gérer manuelement le sorting si tu l'active
    la c'est plus la meme histoire

  7. #7
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 159
    Points : 68
    Points
    68
    Par défaut
    j'ai mis dans la page aspx dans le grid view
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    OnPageIndexChanged="gvproduit_PageIndexChanging"
    et dans le code bihind j'ai ajouté cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     protected void gvproduit_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gvproduit.PageIndex = e.NewPageIndex;
            gvproduit.DataBind();
        }
    Par contre ca me done cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Aucune surcharge pour 'gvproduit_PageIndexChanging' ne correspond au délégué 'System.EventHandler'
    JE ne sais vrmt pas quoi faire

  8. #8
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    Sur lévénement PageIndexChanged, la signature est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    protected void GridView1_PageIndexChanged(object sender, EventArgs e)
    {
    
    }
    GridViewPageEventArgs c'est pour l'événement PageIndexChanging

  9. #9
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 159
    Points : 68
    Points
    68
    Par défaut
    est ce que je dois importer une bibliothèque ca me donne l'erreur suivante:

    'System.EventArgs' ne contient pas de définition pour 'NewPageIndex'

    Autre chose de niveau de la page .aspx, dois-je ajouter quelque chose sur le gridview pour declarer la fonction

    Merci

  10. #10
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    Pour avoir e.NewPageIndex, il faut utiliser GridViewPageEventArgs
    Or GridViewPageEventArgs n'est pas disponible dans l'évènement PageIndexChanged mais dans PageIndexChanging

    A mon avis, tu n'utilise pas le bon évènement. Je crois que tu devrait plutôt utiliser l'évènement PageIndexChanging.

  11. #11
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 159
    Points : 68
    Points
    68
    Par défaut
    J'ai essayé las deux, ca donne la meme chose

  12. #12
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 159
    Points : 68
    Points
    68
    Par défaut
    Je pense qu'il faudrais ajouter une bibliothèque

  13. #13
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 116
    Points : 93
    Points
    93
    Par défaut
    vous avez trouvé la solution ?

  14. #14
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 71
    Points : 56
    Points
    56
    Par défaut
    Bonjour,
    Merci pour ce post cela fonctionne nikel. Mon problème était une mauvaise lecture entre "PageIndexChanged" et "PageIndexChanging".
    Encore merci

  15. #15
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    J'ai eu le même probleme pour la pagination mais j'ai toujours la même erreur :
    'systemEvents arg' ne contient pas une definition pour 'NewPageIndex' et aucune methode d'extension 'NewPageIndex' acceptant un premier argument du type 'System.Events.arg'
    Et je ne sais pas quoi faire pour la traiter ?

    Merci de m'aider.

  16. #16
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    C'est simple, ce n'est pas le bon type de paramètre attendu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void GridView_PageIndexChanging(Object sender, GridViewPageEventArgs e)

  17. #17
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 46
    Points : 41
    Points
    41
    Par défaut
    Bonjour,
    je veux juste signaler la reponse si quelqu'un en aura besoin

    dans la page aspx.cs declarer l'événement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {     
     
            GridView1.PageIndex = e.NewPageIndex;
    //il faut recharger le gridview, ds et un dataset ici
            GridView1.DataSource = ds;       
            GridView1.DataBind();  
        }
    et dans la page aspx signaler :
    OnPageIndexChanging="GridView1_PageIndexChanging"

    Bon courage

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

Discussions similaires

  1. Problème avec le bouton de pagination du gridview.
    Par Wnejla dans le forum ASP.NET
    Réponses: 2
    Dernier message: 21/04/2013, 01h12
  2. GridView avec pagination et tri
    Par dany13 dans le forum VB.NET
    Réponses: 2
    Dernier message: 17/03/2010, 08h27
  3. Réponses: 8
    Dernier message: 28/05/2009, 10h40
  4. Exception avec comportement différent sur 2 machines
    Par sybaris dans le forum Windows Forms
    Réponses: 0
    Dernier message: 13/03/2009, 10h49
  5. Gridview avec pagination
    Par badi3a82 dans le forum ASP.NET
    Réponses: 18
    Dernier message: 21/10/2008, 14h14

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