Groovy/Grails - 需要检索列表索引值

问题描述 投票:0回答:2

我需要检索列表中每个值的索引位置。我这样做是为了可以显示具有交替行背景颜色的 gsp 表。例如:

(list.indexVal % 2) == 1 ? 'odd' : 'even'

如何获取 Groovy 列表中每个项目的索引位置号?谢谢!

list grails groovy indexing
2个回答
10
投票

根据文档,gsp视图中的g:each标签允许“status”变量 其中 grails 存储迭代索引。 示例:

<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>

2
投票

可以使用任何

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] %>
   ...
<% } %>
© www.soinside.com 2019 - 2024. All rights reserved.