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