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 :

Le pager du GridView qui Page pas !


Sujet :

ASP.NET

  1. #1
    Membre extrêmement actif
    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 : 54
    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
    Points : 1 434
    Points
    1 434
    Par défaut Le pager du GridView qui Page pas !
    Bonjour à tous.
    ça fait maintenant 45 minutes que je suis sur le sujet, je sèche, je dois avoir du caca dans le yeux où j'ai tout oublié de ce que je savais faire, bref, je pige que dalle.

    Alors le problème est simple : un GridView dispose d'un Pager et lrosque je le mets en place, ça change pas de page. Je vois un postBack mais rien, il reste obstinément sur la première page.
    Donc, sagement je suis retourné dans la MSDN et j'ai suivi l'exemple, mais rien à faire.
    J'ai fais une recherche avec mon ami Google, j'ai regardé une vingtaine d'exemple, j'ai fais tout pareil, mais toujours rien, le mien fait grève ou veux partir en vacances, bref, il change pas de page.

    Alors quid ? Est ce que j'oublie le détail qui tue ? Voyez vous même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <asp:GridView ID="gvGig" runat="server" DataKeyNames = "IdGig"></asp:GridView>
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
            Dim dtGig As DataTable = New DManager("DataDev").RetournerTable("EXEC ListeGigBase Null,Null")
            Dim tpGig As New TemplateField
            With tpGig
                .ItemTemplate = New TplGig(DataControlRowType.DataRow)
                .HeaderTemplate = New TplGig(DataControlRowType.Header)
            End With
            With gvGig
                .DataSource = dtGig
                .PageSize = 5
                .AllowPaging = True
                With .PagerSettings
                    .Mode = PagerButtons.NextPreviousFirstLast
                    .NextPageText = "Suivante"
                    .PreviousPageText = "Précédente"
                    .FirstPageText = "Début"
                    .LastPageText = "Fin"
                    .Position = PagerPosition.Bottom
                    .PageButtonCount = 5
     
                End With
                .AutoGenerateColumns = False
                .Columns.Add(tpGig)
                .DataBind()
            End With
        End Sub
     
        Protected Sub gvGig_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles gvGig.PageIndexChanging
     
            gvGig.PageIndex = e.NewPageIndex
     
        End Sub

  2. #2
    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
    Bonjour,

    Tu n'aurais pas oublié un if (! IsPostBack) dans ton Page_Init ? Tu fais un Bind() à chaque chargement de ta page là.

  3. #3
    Membre extrêmement actif
    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 : 54
    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
    Points : 1 434
    Points
    1 434
    Par défaut
    Merci Nicolas.

    Non, pas de postback à gérer, sauf pour faire prorpe !

    Par contre contre j'ai fini par trouver, à l'instant. Et je trouve ça complètement débile.

    Dans l'évènement PageIndexChanging, non seulement faut lui préciser l'index de la page (déjà ça, c'est pas frais du tout) mais en plus faut le recharger avec un DataBind.
    Alors là, je suis sur mon céans !

    Bref, maintenant ça marche mais bon, faudrait qu'ils revoient leur copie les p'tits gars.

  4. #4
    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
    Citation Envoyé par zooffy Voir le message
    Non, pas de postback à gérer, sauf pour faire prorpe !
    C'est peut-être propre mais pas du tout performant .

    Citation Envoyé par zooffy Voir le message
    Dans l'évènement PageIndexChanging, non seulement faut lui préciser l'index de la page (déjà ça, c'est pas frais du tout) mais en plus faut le recharger avec un DataBind.
    Alors là, je suis sur mon céans !
    Normal, le bind sur la première page va faire une requête du style "selection des 25 premiers résultats de tel requête". Si tu changes de page, il faut refaire un Bind pour dire "selection des 25 suivants".

  5. #5
    Membre extrêmement actif
    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 : 54
    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
    Points : 1 434
    Points
    1 434
    Par défaut
    Citation Envoyé par Nicolas Esprit Voir le message
    Normal, le bind sur la première page va faire une requête du style "selection des 25 premiers résultats de tel requête". Si tu changes de page, il faut refaire un Bind pour dire "selection des 25 suivants".
    Ah, je comrpends mieux maintenant. Du coup, le PAger c'est ultra performant. Il remonte que les données dont il a besoins et retourne chercher les autres quand on lui demande.
    Mais alors, si je colle mon GridView dans un UpdatePanel, il me fait ça en douceur, sans bouger le reste de la page ?

  6. #6
    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
    Et oui, c'est le but. Si une requête renvoie des milliers de lignes, on ne récupère que ce qui nous intéresse. Moins de données à transiter, page web bien plus légère, et c'est plus ergonomique pour l'utilisateur.

    Avec un UpdatePanel qui entoure la GridView, oui tu pourrais avoir des changements de page quasi-instantanées (ça dépend biensûr de ta source de données et du temps d'execution de la requête). Mais globalement c'est rapide à mettre en place pour un effet sympa.

  7. #7
    Membre extrêmement actif
    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 : 54
    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
    Points : 1 434
    Points
    1 434
    Par défaut
    Merci pour tous ces conseils (et tout ceux que tu m'as déjà filé dans d'autres topic.)

    C'est super agréable.

    Entre toi et LuteceFalco je me sens en sécurité de programmation, j'ai moins peur de faire n'importe quoi.

    ça fait du bien de savoir que des gens comme vous existe.

    Merci les gars, et bonne continuation.

    J'ai aussi une pensée pour ceux que je ne vois plus beaucoup : Poulain, Calagan99, j'en oulbie.

  8. #8
    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
    Et bien, ça fait toujours plaisir de voir de tels remerciements

    C'est vrai que LuteceFalco tire plus vite que son ombre sur ce forum

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

Discussions similaires

  1. Un GridView qui veut pas suppirmer
    Par zooffy dans le forum ASP.NET
    Réponses: 9
    Dernier message: 23/09/2009, 09h57
  2. Delete d'un GridView qui delete pas, enfin, presque
    Par zooffy dans le forum ASP.NET
    Réponses: 4
    Dernier message: 19/09/2008, 09h51
  3. Update sur un GridView qui update pas !
    Par zooffy dans le forum ASP.NET
    Réponses: 1
    Dernier message: 16/09/2008, 09h53
  4. le Sorting du GridView qui trie pas
    Par zooffy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 15/07/2008, 16h47
  5. Couleur de fond d’un page qui n’est pas une page mais juste
    Par Furius dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 12/01/2006, 17h16

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