2 votes

grails + obtenir la valeur suivante dans g:each

J'ai une liste de cases à cocher comme celle-ci :

<g:each in="${mylist}" var = "item" >
     <tr>
      <td colspan="2"><g:checkBox value="${dimension.id}" name="${item.id}"/> - ${item.name}</td>
     </tr>
</g:each>

Je dois le modifier pour obtenir 2 colonnes dans chaque ligne (2 cases à cocher par ligne).

<g:each in="${mylist}" var = "item" >
   <td> checkbox with item </td>
   <td> checkbox with next item</td>
</g:each>

Je ne voudrais pas écrire une balise pour cela, et l'option scriptlet n'est pas très agréable.

Existe-t-il une solution miracle ?

Merci d'avance

3voto

tim_yates Points 63521

Pourquoi ne pas utiliser l'attribut status :

<tr>
  <g:each status="i" in="${myList}" var="item">
    <g:if test="${ ( i > 0 ) && ( i % 2 == 0 ) }">
      </tr><tr>
    </g:if>
    <td><g:checkBox value="${dimension.id}" name="${item.id}"/> - ${item.name}</td>
  </g:each>
</tr>

A part cela, vous allez probablement écrire votre propre tag grails.

Vous pourriez faire quelque chose comme ceci pour compléter votre liste en une liste de paires de données, puis appeler chacune d'entre elles sur cette liste partitionnée.

Tout cela pourrait être fait dans le GSP, bien sûr, mais il est toujours plus facile d'envelopper ces choses dans une étiquette et de les garder hors de vue.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X