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 :

Pagination d'un Gridview


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2010
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Juillet 2010
    Messages : 98
    Par défaut Pagination d'un Gridview
    Bonjour à tous

    J'ai un probléme pour effectuer la pagination de mon gridview. Quand j'essaie de changer de page il ne m'affiche rien.

    Mon gridviex est allimenté par un dataset

    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
    //Recupération des champs de recherche
                    String duree_op = Duree_recherche.Text;
                    String annee_op = Annee_recherche.Text;
     
     
                    string[] Valeur_Recherche = new string[] {"%" + recherche_titre.Text + "%",recherche_genre.Text,recherche_duree.Text,recherche_annee.Text,Recherche_public.Text,recherche_visionage.Text,Recherche_Nom_Saga.Text};
                    string[] cle_Recherche = new string[] {"Titre Like","VD.GenreID =","duree " +duree_op,"annee "+annee_op,"Cotation =","Visionner =","Nom_saga ="};
     
                    //Création de la Requête
                    string Video_recherche = "SELECT VD.ID as ID,Titre,G.[Genre] as genre,duree,Cotation,[Nom_Saga] as saga " +
                                             "FROM [VidéoMania].[dbo].[VIDEO_Liste_Video] VD Inner join [VidéoMania].[dbo].[Param_video_genre] G On VD.GenreID = G.ID ";
     
                    Video_recherche = Fonction.RechercheVideo(Valeur_Recherche, cle_Recherche, Video_recherche);
                    Video_recherche = Video_recherche + " Order by N_saga ASC, Nom_Saga ASC, VD.ID ASC";    
     
                    DataSet video_recherche_data = Fonction.construirdataset(Video_recherche);
                    video_resultat.DataSource = video_recherche_data;
                    video_resultat.DataBind();
                    video_resultat.Visible = true;
    Ensuite j'ai eu un message d'erreur comme quoi pageindexchanging n'était pas géré. J'ai rajouté quelque ligne mais qui fonctionne pas

    1ère solution : Mon grid view s'affiche mais la page 1 est idendique à moitié à la page 2.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    video_resultat.PageIndex = e.NewPageIndex;
     
                //Code à revoir
                //Recupération des champs de recherche
                String duree_op = Duree_recherche.Text;
                String annee_op = Annee_recherche.Text;
     
                string[] Valeur_Recherche = new string[] { "%" + recherche_titre.Text + "%", recherche_genre.Text, recherche_duree.Text, recherche_annee.Text, Recherche_public.Text, recherche_visionage.Text, Recherche_Nom_Saga.Text };
    2éme solution : rien ne se page

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    video_resultat.PageIndex = e.NewPageIndex;
                video_resultat.DataBind();
    Si vous avez une idée je suis preneur. J'ai été voir sur MSDN mais il ne donne q'un exemple pour annuler la pagination est pas pour l'effectuer

    Merci d'avance pour votre aide

  2. #2
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Par défaut
    Bonjour,

    la ligne de code où tu définis le nouvel index de page est correct.

    Mais après tu dois relancer la requête pour remplir ton datasource.
    après cela, un databind.
    il manque donc juste un truc à ta dernière solution.

    si tu veux éviter de relancer la requête, tu peux toujours stocker le résultat

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Vu que c'est du C# j'ai aps tout compris dans le détail.

    La seule chose que je puisse te dire c'est j'ai eu ce problème il n'y a pas longtemps, donc tu aurais du (si tu avais cherché dans le fourm) tomber sur mon topic.

    La solution est simple : le chagement d'index d epage d'une GRidView se fait dans le PageIndexChanging. Dans cet évènement tu place le nouvel index de page et tu recharge :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    gv.PageIndex = e.NewPageIndex
    gv.DataBind()
    C'est super puissant car il ne va chercher que les donnée ont il a besois dans la page du gridView et du coup moins de tranport de données.

    @ +

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par zooffy Voir le message
    C'est super puissant car il ne va chercher que les donnée ont il a besois dans la page du gridView et du coup moins de tranport de données.
    @ +
    Nop, il récupère tout à chaque fois

  5. #5
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Citation Envoyé par lutecefalco Voir le message
    Nop, il récupère tout à chaque fois
    Alors va falloir te mettre d'accord ave Nicolas car, visiblement, il ne dit pas la même chose que toi.
    http://www.developpez.net/forums/d94...e/#post5334930

    Moi, j'y connais pas assez, mais je vous fais confiance à tous les deux. Sauf que là, vous lancez une idée contradictoire, alors qui a raison ?



    allez, je pars faire du Kart, en attendant un coup de main sur mon souci de HttpHandler.

    @+

  6. #6
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par zooffy Voir le message
    Alors va falloir te mettre d'accord ave Nicolas car, visiblement, il ne dit pas la même chose que toi.
    http://www.developpez.net/forums/d94...e/#post5334930

    Moi, j'y connais pas assez, mais je vous fais confiance à tous les deux. Sauf que là, vous lancez une idée contradictoire, alors qui a raison ?
    J'ai raison

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2010
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Juillet 2010
    Messages : 98
    Par défaut Demande de renseignement
    Citation Envoyé par lutecefalco Voir le message
    Nop, il récupère tout à chaque fois
    Donc si j'ai bien compris à chaque fois que l'utilisateur change la page il faut que je recalcule les ligne que je retourne.

    Par exemple si mon grid view affiche 10 lignes (propriéte lignesize) et l'utilisateur demande la page 4 il faut que je récupère les lignes 41 à 50 de mon gridview.

    Est ce que c'est la meilleur solution.

    Merci

  8. #8
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par charlingals1 Voir le message
    Donc si j'ai bien compris à chaque fois que l'utilisateur change la page il faut que je recalcule les ligne que je retourne.

    Par exemple si mon grid view affiche 10 lignes (propriéte lignesize) et l'utilisateur demande la page 4 il faut que je récupère les lignes 41 à 50 de mon gridview.

    Est ce que c'est la meilleur solution.

    Merci
    Ouais
    Mais à voir si ça vaut vraiment le coup.
    Si t'as que qqs centaines de lignes, ça vaut pas le coup de s'embêter

  9. #9
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Par défaut
    Bonjour.

    je t'avais donné la réponse au premier message tout de même
    je ne comprends pas pourquoi personne ne l'a lu!

    Citation Envoyé par cortex024 Voir le message
    Bonjour,

    la ligne de code où tu définis le nouvel index de page est correct.

    Mais après tu dois relancer la requête pour remplir ton datasource.
    après cela, un databind.
    il manque donc juste un truc à ta dernière solution.

    si tu veux éviter de relancer la requête, tu peux toujours stocker le résultat

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

Discussions similaires

  1. Pagination manuelle avec gridview
    Par trihanhcie dans le forum ASP.NET
    Réponses: 1
    Dernier message: 22/03/2010, 19h51
  2. Mémoriser le N° de pagination d'un Gridview
    Par kheironn dans le forum ASP.NET
    Réponses: 2
    Dernier message: 13/06/2007, 10h51
  3. Problème de pagination avec un GridView
    Par Perceuse-Killer dans le forum ASP.NET
    Réponses: 2
    Dernier message: 07/02/2007, 13h30
  4. Réponses: 1
    Dernier message: 27/09/2006, 09h28
  5. [C#] Comment gérer la pagination avec un GridView ?
    Par appwnet dans le forum ASP.NET
    Réponses: 5
    Dernier message: 05/05/2006, 13h47

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