|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() paco Étudiant Inscription : mai 2011 Messages : 14 ![]() |
Bonjour à tous,
J'utilise le grid d'ExtJs afin d'afficher mes données récupérées depuis une bd sql server via un web service, le retour des données se fait en format JSON, je suis arrivé a faire afficher mes données sur le grid mais je bloque au niveau de la pagination, je retrouve tout mes enregistrements sur la première page même si j'ai bien spécifié la limite a afficher par page ... je ne vois pas d'où peut venir ce problème surtout que je me suis basé sur la doc officielle, merci de votre aide Voici mon code : Code :
|
||
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() |
Bonjour,
Je ne suis pas sûr que le problème vienne de extjs mais de ta requête. As-tu bien le limit (en fonction de la bdd) dans le requête SQL ? |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() paco Étudiant Inscription : mai 2011 Messages : 14 ![]() |
Bonjour,
ben en faite je ne vois pas l'intérêt de mettre une limite dans ma requête vu que je dois récupérer toutes les données, c'est juste l'affichage qui doit se faire par bloc de 10 enregistrements par page par exemple |
|
|
00
|
|
|
#4 |
|
Membre chevronné
![]() |
Extjs ne permet pas de faire ça.
Il est même préférable pour des questions de performances, de n'afficher que les données utiles. |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() paco Étudiant Inscription : mai 2011 Messages : 14 ![]() |
Bonjour,
Euh ... je crois qu'il le fait, vu que sur leur exemples ils affichent les données depuis une base mais sous forme de forum ... et je ne vois pas ou pourrai être le problème (logiquement, tant qu'on peut afficher ce dont on a besoin, on peut tout afficher) exemple : si j'ai besoin de 50 enregistrements et que je souhaite en avoir que 10 par page, si cela est faisable après c'est pareil. Mon souhait c'est juste de pouvoir paginer, limiter le nbr d'enregistrement a afficher par page. |
|
|
00
|
|
|
#6 |
|
Membre confirmé
![]() ![]() Étudiant Inscription : mai 2007 Messages : 249 ![]() |
Pour limiter le nombre d'enregistrement sur ta page il faut mettre un limit dans ta requête car il n'y a pas de propriété permettant de limiter le nombre de données à afficher dans un grid sans pagination.
Seule la barre de pagination permet de limiter le nombre de données à afficher. De plus si tu a 5000 résulta, en une seule fois cela risque d'être long... Avec la pagination (et donc la découpe avec le limit), l'utilisateur ne va faire appel qu'a des "petits" paquets de données donc plus rapide. La pagination s'occupe elle même de renvoyer les infos pour refaire une requête et envoyer la suite des données. Pour faire de la pagination en local, je cherche aussi à le faire mais pour la simple et bonne raison que je ne peu pas mettre de limit dans ma reqête :s Tu a une explication pour la pagination en local ici : http://www.developpez.net/forums/d10...ination-local/ |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() paco Étudiant Inscription : mai 2011 Messages : 14 ![]() |
Bonjour Abraxis,
Merci de ta réponse, bah en faite c'est exactement la même chose pour moi je ne peux pas mettre de limit dans ma requête, l'explication que tu m'as donné est assez vague, ya pas la solution du comment on peut faire :s donc cela ne résout toujours pas mon problème. |
|
|
00
|
|
|
#8 | ||
|
Membre chevronné
![]() |
Vous avez un problème de conception si vous rentré dans ce cas la.
J'ai tester une combobox avec 300 enregistrements en une fois et une combobox paginer (j'ai fait le test avec 3000 enregistrements). C'est tout simplement inutilisable. Si vous avez des paramètres à passer continuellement avec votre pagination il y a cette méthode : Code :
|
||
|
|
00
|
|
|
#9 | ||||
|
Invité de passage
![]() paco Étudiant Inscription : mai 2011 Messages : 14 ![]() |
Bonjour Kenny,
J'ai rien compris à ta réponse :s enfin l'utilisation, là, je suis arrivé à afficher 10 enregistrements par page, mais le problème c'est que quand je défile d'une page a une autre c'est les même enregistrements :s voilà comment j'ai procédé : Voici mon code pour y voir plus clair : **Page: .asmx Code :
Code :
Merci de ton aide |
||||
|
|
00
|
|
|
#10 |
|
Membre chevronné
![]() |
Désolé il est vrai que ce n'est pas vraiment compréhensible.
J'ai fait plusieurs tests :
Ton problème viens que tu as oublié un paramètre important. Tu as besoin d'un offset pour indiquer à partie de quel tranche tu souhaite récupérer. regarde dans la console de ton navigateur les paramètres envoyé. dans extjs le paramètre s'appelle start il est automatiquement gérer tu as juste à le prendre et à l'utiliser dans ta requête. Attention !! tu peux avoir des variantes suivant la base de données que tu te connecte. Exemple : Les limit en mysql ne ce gère pas de la même façon sur Oracle (mais alors pas du tout). |
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() paco Étudiant Inscription : mai 2011 Messages : 14 ![]() |
Bonjour Kenny,
Donc là, si j'ai bien compris suffit juste de rajouter une limit au niveau de ma requête c'est bien çà ? |
|
|
00
|
|
|
#12 |
|
Membre chevronné
![]() |
Bonjour oseqat,
Non tu as déjà fait le limit. Dans une requête, tu as besoin de 2 paramètres pour faire une pagination :
http://www.developpez.net/forums/d42...it-sql-server/ |
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() paco Étudiant Inscription : mai 2011 Messages : 14 ![]() |
Bonjour kenny,
merci bcp pour ton aide, mais je suis toujours perdu, en faite au niveau de mon web service Total prend bien la valeur 100, qui est en fait le nbr de mes enregistrements, si je récupère que les 20 premiers enregistrements c du a mon url dans le proxy d'extjs : url: '../Service.asmx/GetMyDvpt3?pageSize=20 &pageNumber=1' vu que spécifie la valeur de pageSize (en dur) l'idée si possible serait de pouvoir passer ces paramètres sans avoir à les saisir, si j'arrive a récupérer ces paramètres je crois que le problème serait résolu, j'ai déjà testé params:{pageSize: 20, pageNumber: 1} et au niveau de mon store.load({params: {start: 0, limit: 20}}); mais rien ne change c'est toujours le même résultat. ça m'énerve d'être bloqué comme çà |
|
|
00
|
|
|
#14 |
|
Membre chevronné
![]() |
En fait ils sont déjà envoyer dans le store par défaut.
Pour vérifier tous les paramètres que tu as lors du chargement de ton store utilise firefox avec firebug. Tu active l'onglet console puis fait un F5. Ensuite exécute ton load tu devrais obtenir quelque chose comme ça : image firebug |
|
|
00
|
|
|
#15 |
|
Invité de passage
![]() paco Étudiant Inscription : mai 2011 Messages : 14 ![]() |
oui oui j'ai quelque chose du genre, sinon tu n'aurais pas une idée pour me débloquer ? ou un projet qui y ressemble et sur le quel je pourrai me baser ?
|
|
|
00
|
|
|
#16 |
|
Membre chevronné
![]() |
Effet la c'est avec le C# ton problème, pas extjs.
Il faudrait que tu affiches les variables que tu reçois dans le C#. Extjs, fait des requêtes ajax en post et non en get. En voila un exemple : http://dev.sencha.com/deploy/ext-4.0...id/paging.html |
|
|
00
|
|
|
#17 |
|
Invité de passage
![]() paco Étudiant Inscription : mai 2011 Messages : 14 ![]() |
merci pour l'exemple, je l'avais déjà chécké il ne m'a pas servi a grand chose ... merci comme même
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com