1

以下のようにアイテムを表示したいのですが、

<td1>     <td2>     <td3>     <td4>
1          7         13        19
2          8         14        20
3          9         15        21
4          10        16        22
5          11        17        23
6          12        18        

データベースから単一の列にデータ (1 ...... 23 から) を取得しています。ここで、単一の列のデータを上記の形式で表示するループを実行したいと思います。上記の形式でデータを表示できるforループコードを教えてください。実稼働環境ではデータが 23 を超える可能性があるため、ロジックは任意の量のデータを処理できるようにする必要があります。ASP.NET(C#)を使用しています。

ありがとう

4

3 に答える 3

3

asp:DataList を使用してデータをバインドできると思います。以下は、 RepeatDirection および RepeatColumns プロパティでdatalist
を使用する例です。

于 2009-01-25T14:21:52.847 に答える
2

疑似コード(テストしていません):

int recordnum=....; //get the total number of records
int col_length=recordnum/4;

for(int i=0;i<col_length;i++)
{ for(int j=0;j<4;j++)
    print data[i+j*col_length] ;
  print "\n";
}
于 2009-01-25T14:11:01.167 に答える
2

OK、これが Riho のループの修正版です。

int records = ... ;                     /* the number of records */
int cols = 4;                           /* the number of columns */
int rows = (records + cols - 1) / cols; /* nb: assumes integer math */

for (int row = 0; row < rows; ++row) {

    print "<tr>";

    for (int col = 0; col < cols; ++col) {

        print "<td>";

        int offset = col * rows + row;
        if (offset < records) {
            print data[offset];
        } else {
            print "nbsp;" /* nb: should have an & but markdown doesn't work */
        }

        print "</td>";
    }

    print "</tr>";
}

&nbsp;セルは、レンダリングされた HTML セルの背景が正しいことを確認するために必要になることがよくあります。欠落しているセルまたはデータが含まれていないセルは、通常のセルと同じようにレンダリングされません。

于 2009-01-25T15:10:03.170 に答える