2010-11-03 11 views
0

J'ai un GridPanel ExtJS avec un magasin et une barre d'outils de pagination en bas. Je peux définir manuellement la page de démarrage via le navigateur en utilisant:ExtJS Paging Toolbar page de démarrage

www.someurl.com/page/7 

Cela va charger le magasin de données avec la page 7 correctement. Toutefois, la barre d'outils de pagination ne met pas à jour le numéro de page du magasin (il affiche toujours 1). J'avais l'impression qu'en changeant la page du magasin change aussi la page dans la barre d'outils de pagination, mais ce n'est pas le cas. Voici quelques exemples de code:

var _store = new Ext.data.Store({ 
    id   : 'store_id', 
    remoteSort : true, 
    autoDestroy : true, 
    restful  : true, 
    proxy  : _proxy, 
    reader  : _reader, 
    writer  : _writer 
}); 

var _pagingToolbar = new Ext.PagingToolbar({ 
    displayInfo : true, 
    pageSize  : 20, 
    store   : _store 
}); 

_I.grid = new Ext.ux.GridPanel({ 
id    : _I.options.id+'_grid', 
title   : _I.options.title, 
store   : _store, 
bbar  : _pagingToolbar 
}); 


_I.options.page = 7; //start store on page 7 

_I.grid.render('somediv'); 
_store.load({params:{start:_I.options.page, limit:20, sort:'id', dir:'ASC'}}); 

Depuis la page de démarrage est réglé sur 7, les données qui charge dans le magasin est correct, cependant, la page dans la barre d'outils Pagination lit 2. J'ai essayé de placer manuellement la page avec

_pagingToolbar.changePage(20); // should set page to 20 

Je reçois le même résultat, le magasin de données charge la page correcte, mais le texte de la barre d'outils ne change pas. L'ordre est-il faux? J'ai également essayé de charger le magasin avant que la grille soit rendue, en vain, avec le même résultat.

Répondre

0

De quelles informations de pagination revenez-vous du côté serveur? PagingToolbar prend juste cette information du magasin.

Pourriez-vous montrer à votre lecteur et à la partie de la réponse du serveur les données de pagination?

1

Comme le magasin et la barre de recherche de personnes sont liées inhernatly, vous devez simplement être en mesure d'utiliser la méthode .changePage(n) pour modifier la page et automatiquement régler le contenu du magasin. Vous ne devez pas également coder le magasin avec une mise à jour de jeu d'enregistrements. Aussi, êtes-vous sûr à 100% que le magasin affiche les enregistrements corrects pour la page '7'?