2017-03-29 1 views
0

J'ai des objets de classe de domaine ajoutés dynamiquement à ma base de données.Comment afficher une dernière plage de pages d'affichage dans Grails?

Il y a la page index.gsp générée qui contient la table des objets et je veux seulement afficher les 50 derniers objets, pas tous.

En ce moment c'est ainsi que la table semble:

<tbody> 
<g:each in="${eventInstanceList}" status="i" var="eventInstance"> 
    <tr class="${(i % 2) == 0 ? 'even' : 'odd'}"> 

     <td><g:link action="show" id="${eventInstance.id}">${fieldValue(bean: eventInstance, field: "bandsintown_id")}</g:link></td> 

     <td>${fieldValue(bean: eventInstance, field: "artist")}</td> 

     <td>${fieldValue(bean: eventInstance, field: "ticketStatus")}</td> 

     <td>${fieldValue(bean: eventInstance, field: "ticket_url")}</td> 

     <td>${fieldValue(bean: eventInstance, field: "venue")}</td> 

    </tr> 
</g:each> 

Donc, je le répète, le code ci-dessus affiche tous mes objets dans une table - je veux afficher seulement le 50 , Est-ce que quelqu'un pourrait m'aider?

MISE À JOUR:

eu à travailler avec ce code dans mon contrôleur:

def index() 
{ 
    int eventCount = Event.count() 
    int startingPoint = eventCount - 50 

    def events = Event.createCriteria().list 
    { 
     order('id') 
     firstResult(startingPoint) 
     maxResults(50) 
    } 

    respond events 
} 

Répondre

0

Vous pouvez modifier l'action d'index dans votre contrôleur, quelque chose comme:

def index() { 
    def events = Events.createCriteria().list{ 
     order('id', 'desc') 
     maxResults(50) 
    } 
    respond events 
} 

Vous avez probablement avoir eventInstanceCount retourné par index et utilisé dans votre pagination gsp que vous pouvez supprimer.

+0

Hé, merci beaucoup, vous m'avez mis sur la bonne voie. J'avais juste besoin d'ajouter un peu plus pour que ça commence vraiment à partir de l'événement 50 depuis la fin. Edité mon q avec le code final. –