1

可変量のデータが与えられた場合、行ごとの列数が固定されたテーブルを作成したいと思います。たとえば、行ごとに4つの列だけが必要な場合があります。

    <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列を超えます。

列数が一定で、必要に応じて新しい行が作成されるようにデータを出力するにはどうすればよいですか?

4

2 に答える 2

1

Grails(およびGroovy)の優れた点の1つは、その拡張性です。多くの場合、開発者は、ツールとフレームワークが現在提供しているものに思考を制約します。フレームワークに組み込まれるとしたら、理想的でよりエレガントなソリューションが何であるかを考えるのに役立つことがよくあります。それは通常、私がそれをどのように実装したいかについての良い方向性を与えてくれます。あなたのシナリオでは、要素のグループごとに処理できるように、要素のグループ内のコレクションを反復処理する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>

もちろん、それは存在しません...だから私はそれを作成しました!要素の最後のグループを埋めるためのフラグを提供して完全な行を取得することで改善できる可能性がありますが、読者の演習として残しておきます。;-)

プロジェクトで私のtaglibからmyを使用するに<lm:eachGroup>は、Grailsプラグインのgitリポジトリのクローンを作成します。

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

プラグインをパッケージ化します。

$ grails package-plugin

次に、それをアプリにインストールします。

ところで、私はしばらく前に、eachGroup()メソッドをListに追加するために同様のことをしました。

于 2012-08-14T02:16:11.043 に答える
-1

HTMLには、行ベースのテーブルではなく列ベースのテーブルを作成できるものはありません。

ループを通過した回数を数え、ループを4回通過するごとに新しい行を開始する必要があります。

于 2012-08-13T08:30:04.873 に答える