私が持っているリスト内の各値のインデックス位置を取得する必要があります。行の背景色を交互に使用してgspテーブルを表示できるように、これを行っています。例えば:
(list.indexVal % 2) == 1 ? 'odd' : 'even'
Groovy リスト内の各項目のインデックス位置番号を取得するにはどうすればよいですか? ありがとう!
documentationによると、 gsp ビューの g:each タグは、grails が反復インデックスを格納する "status" 変数を許可します。 例:
<tbody>
<g:each status="i" in="${itemList}" var="item">
<!-- Alternate CSS classes for the rows. -->
<tr class="${ (i % 2) == 0 ? 'a' : 'b'}">
<td>${item.id?.encodeAsHTML()}</td>
<td>${item.parentId?.encodeAsHTML()}</td>
<td>${item.type?.encodeAsHTML()}</td>
<td>${item.status?.encodeAsHTML()}</td>
</tr>
</g:each>
</tbody>
g:each
、eachWithIndex
、またはループのいずれかをfor
使用できます。
ただし、この特定のケースでは、インデックス値は必要ありません。css 疑似クラスを使用することをお勧めします。
tr:nth-child(odd) { background: #f7f7f7; }
tr:nth-child(even) { background: #ffffff; }
それでもインデックスを取得する必要がある場合のオプションは次のとおりです。
<g:each status="i" in="${items}" var="item">
...
</g:each>
<% items.eachWithIndex { item, i -> %>
...
<% } %>
<% for (int i = 0; i < items.size(); i++) { %>
<% def item = items[i] %>
...
<% } %>