Таблица циклов Foreach, максимум 2 ячейки, а затем новая строка? - PullRequest
1 голос
/ 17 марта 2011

У меня есть вопрос для моего цикла foreach по дизайну таблицы в моем представлении mvc.

Я хочу, чтобы мой цикл выводил до 2 ячеек для каждой строки таблицы, и если он имеет данные для вывода из цикла более 2 ячеек, он добавляет новую строку и продолжает выводить данные в ячейках этой строки и т.

У кого-нибудь есть решение для этого?

Ответы [ 3 ]

5 голосов
/ 17 марта 2011

Итерация по коллекции с шагом в два. Убедитесь, что элемент i + 1 th доступен до его вывода, вместо этого выведите пустую ячейку, если ее нет.

<table>
<thead>
    <tr><th>Column 1</th><th>Column 2</th></tr>
</thead>
<tbody>
@for (int i = 0; i < Model.Count(); i = i + 2)
{
     <tr>
        <td>@Model[i]</td> // or @Model.ElementAt(i)
        <td>@(i+1 < Model.Count() ? Model[i+1] : "")</td> // similar
     </tr>
}
</tbody>
</table>
3 голосов
/ 17 марта 2011

Для этого не следует использовать таблицы.

Вместо этого поместите ваш контент в <div> s с float: left или display: inline-block и сделайте родительский элемент достаточно широким, чтобы в нем могли находиться два дочерних элемента.

2 голосов
/ 17 марта 2011

Вы хотите посмотреть, используя оператор модуля (%).

Что-то вроде

if i%2 = 0 { new line }
...