2010-08-14 4 views
0

Je suis débutant à Grails et j'ai essayé d'utiliser la balise de pagination de Grails trouvé ici link text
et quand je l'ai essayé de l'utiliser comme il le dit comme ce Controller:Grails tag pagination ne pas utiliser la méthode

def pageslist = { 
[pages: Page.list(params)] 
} 

vue

< g:paginate next="Forward" prev="Back" maxsteps="5" controller="story" action="pageslist" total="${story.pages.count()}" /> 

il me donne rien du tout et le débogueur jamais entrer dans la méthode du contrôleur .. quel est le problème et est-il une autre façon f ou paginant de manière côté serveur

Répondre

1

Essayez:

<g:paginate next="Forward" prev="Back" maxsteps="5" controller="story" 
      action="pageslist" total="${pages.count()}" /> 

Parce que vous avez retourné une carte [pages: Page.list(params)] comme le modèle de votre contrôleur, vous serez en mesure d'accéder à la pages variable à partir de votre point de vue.

Edit:

Vous devez obtenir le nombre total de pages que vous souhaitez paginer à travers. Soit utiliser total="${Page.count()} "ou ajouter une autre variable à votre modèle

voir le documentation on the Paginate tag pour plus

+0

je vais essayer monsieur et vous confirmerons dès que possible :) ne peut pas vous dire combien j'appreci le mangeai –

+0

Vous ne devriez pas utiliser 'pages.count()' pour l'attribut total, depuis 'pages' la liste déjà paginé des pages (à savoir seulement les pages qui sont affichées dans l'étape de pagination actuelle). L'attribut 'total', cependant, attend le nombre total * d'éléments (pour qu'il soit capable de déterminer le nombre total d'étapes de pagination). –

+0

ça n'a pas dit qu'il ne peut pas obtenir compter sur objet nul .. cela signifie pages .. et quand je fais des pages nulles sûres? .count() il me donne un autre message d'erreur Tag [paginate] est manquant attribut requis [total] cela signifie que le problème persiste que le paginate ne remet pas la fonction pageslist du tout :( –

2

Vous devez utiliser comme Colin sugested dernier, ${Page.count()} et page d'importation dans votre gsp:..

<% import pa.ck.age.Page %> 

ou vous pouvez ajouter un autre au modèle param retourné à la vue:

def pageslist = { 
    [pages: Page.list(params), total: Page.count()] 
} 
Questions connexes