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

Ext JS / Sencha Discussion :

Pagination dynamique dans grille


Sujet :

Ext JS / Sencha

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2010
    Messages : 394
    Par défaut Pagination dynamique dans grille
    Bonjour,

    Encore un petit soucis avec une grille. J'aimerais que l'utilisateur puisse changer dynamiquement la pagination de la grille, sur un clic droit dans la grille. La partie menu contextuel fonctionne correctement, et j'ai ensuite une liste proposant une pagination de 10, 20 et 30. Par contre, je n'arrive pas à faire en sorte que ma 'PagingToolBar' se rafraichisse.

    Concrètement, si je clic sur 20 par exemple, j'ai bien 20 résultats qui s'affichent dans ma grille, en bas à droite, j'ai bien "Résultats 1 - 20" au lieu de "1 - 10", mais par contre, mon nombre total de pages reste inchangé. De plus, si je veux naviguer dans ma grille avec la barre de pagination, mes résultats sont de nouveaux affichés par groupe de 10.

    Ci-dessous un aperçu du code correspondant.

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    var nombrePage = 10;
    var store = //Definition de mon store
    store.load({params: {start: 0, limit: nombrePage}});
    var grille = new Ext.grid.GridPanel({
         // Configuration de ma grille
         store: store,
         listeners: {
              rowcontextmenu: function(g, index, ev) {
                   var menu: new Ext.menu.Menu({
                        items: [{
                                 text: "pagination = 10",
                                 handler: function() {
                                      nombrePage = 10;
                                      store.load({params: {start:0, limit: nombrePage}});
                                      grid.getView().refresh();
                                 }
                             },{
                                 text: "pagination = 20",
                                 handler: function() {
                                      nombrePage = 20;
                                      store.load({params: {start:0, limit: nombrePage}});
                                      grid.getView().refresh();
                                 }
                             },{
                                 text: "pagination = 30",
                                 handler: function() {
                                      nombrePage = 30;
                                      store.load({params: {start:0, limit: nombrePage}});
                                      grid.getView().refresh();
                                 }
                             },{
                        }]
                   });
              }
         },
         bbar: new Ext.PagingToolbar({
              pageSize: nombrePage,
              store: store,
              displayInfo: true,
              displayMsg: 'Résultats {0} - {1} sur {2}',
              emptyMsg: 'Pas de résultats'
         })
    });
    Mako

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 267
    Par défaut
    2 suggestion a explorer :

    * soit tu fais plusieurs (3) pagingToolbar, avec chacun leur configuration et ton menu contextuel te permet de rendre visible ou invisible l'in des trois paginToolbar

    * soit tu créées un extend 'monPaginToolbar' de l'objet pagingToolbar, afin que tu puisse accéder à toutes les variable interne, dont le nombre de ligne par page ...

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2010
    Messages : 394
    Par défaut
    Merci pour les pistes. Je pense plutôt tenter la seconde (plus élégante à mon sens), mais je n'ai pas trop le temps en ce moment...Je reviendrai plus tard pour dire ce que ça a donné.

    Mako

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 267
    Par défaut
    oui, la deuxieme est clairement plus elegante ... ^^

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2010
    Messages : 394
    Par défaut
    C'est bon, je m'en suis sorti sans trop de difficultés en étendant l'objet PagingToolBar. En gros, je me suis basé sur le tutoriel suivant. Puis, dans la partie 'Ext.extend', j'ai rajouté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    setPageSize: function(nombre) {
         this.pageSize = nombre;
    }
    Dans la suite de mon code, si je veux changer mon nombre de pages, par rapport au code posté initialement, il suffit de rajouter juste après avoir donné la nouvelle valeur à nombrePage, la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    toolbar.setPageSize(nombrePage); //avec toolbar le nom de ma PagingToolBar
    Merci pour les (bonnes) idées.

    Mako

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 267
    Par défaut
    Si t es de passage a Paris, on se partagera un donut ^^

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

Discussions similaires

  1. variable dynamique dans une fonction javascript
    Par Shivaneth dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/04/2005, 15h58
  2. Ecriture dynamique dans la page actuelle
    Par fantomasmusic dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 19/04/2005, 12h23
  3. [jsp] include dynamique dans une jsp
    Par petitelulu dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 04/03/2005, 07h59
  4. Réponses: 6
    Dernier message: 24/09/2004, 13h10
  5. [D7] Tableaux dynamiques dans un record
    Par bobby-b dans le forum Langage
    Réponses: 2
    Dernier message: 30/06/2004, 23h23

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