1

给定可变数量的数据,我想创建一个每行具有固定列数的表。例如,我可能只需要每行四列:

    <table>
    <tr>
    <th>COLUMN_1</th> <th>COLUMN_2</th> <th>COLUMN_3</th> <th>COLUMN_4</th>
    </tr>

    <tr>
    for(-some code here-) {
    <td>-some output from the loop-</td>
    }
    </tr>
    </table>

但是如您所见,如果数据由 10 个元素组成,表格行将超过我的四列。

如何输出数据以使列数保持不变并根据需要创建新行?

4

2 回答 2

1

Grails(和 Groovy)的一大优点是它的可扩展性。开发人员经常将他们的思维限制在他们的工具和框架当前提供的内容上。我经常发现如果将其内置到框架中,思考一个理想的、更优雅的解决方案会很有帮助。这通常会给我一个很好的方向,让我知道如何实现它。在您的场景中,我更喜欢 GSP 标记,它在元素组中迭代集合,以便您可以处理每组元素。类似于以下内容:

<table>
<lm:eachGroup size="4" var="row" in="${myCollection}">
   <tr>
   <g:each var="cell" in="${row}">
      <td>${cell}</td>
   </g:each>
   </tr>
</lm:eachGroup>
</table>

当然,那不存在……所以我创造了它!可以通过提供一个标志来填充最后一组元素来改进它,这样你就可以得到一个完整的行,但我将把它作为练习留给读者。;-)

要在您的项目中使用 my <lm:eachGroup>from my taglib,您可以为我的 Grails 插件克隆 git 存储库:

$ git clone https://github.com/erturne/leapingmindtaglib

打包插件:

$ grails package-plugin

然后将其安装到您的应用程序中。

顺便说一句,我不久前做了类似的事情,将 eachGroup() 方法添加到 List。

于 2012-08-14T02:16:11.043 回答
-1

HTML 中没有任何内容可以让您创建基于列的表而不是基于行的表。

你需要计算你已经通过了多少次循环,并在每四次循环后开始一个新行。

于 2012-08-13T08:30:04.873 回答