Как отобразить данные одного столбца в табличном формате? - PullRequest
1 голос
/ 25 января 2009

Я хочу отображать элементы следующим образом,

<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 #).

Спасибо

Ответы [ 3 ]

3 голосов
/ 25 января 2009

Я думаю, вы могли бы использовать asp: DataList и привязать к нему данные.
Вот пример использования списка данных со свойствами RepeatDirection и RepeatColumns.

2 голосов
/ 25 января 2009

ОК, вот исправленная версия цикла Рихо:

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. Отсутствующие ячейки или ячейки без данных не отображаются так же, как нормальные ячейки.

2 голосов
/ 25 января 2009

В псевдокоде (не проверял):

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";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...