Foreach循环表,最多2个单元格然后是新行?

时间:2011-03-17 01:05:29

标签: asp.net-mvc razor

我的mvc视图中有关于表设计的foreach循环的问题。

我希望我的循环为每个表行输出最多2个单元格,如果它有数据循环输出超过2个单元格,它会添加一个新行并继续循环该行上单元格上的数据等。

任何人都有解决方案吗?

3 个答案:

答案 0 :(得分:5)

以2为增量迭代集合。在输出之前检查以确保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>

答案 1 :(得分:3)

你不应该为此使用表格。

相反,请将您的内容放在<div>的{​​{1}}或float: left中,并使父元素足够宽,以容纳两个孩子。

答案 2 :(得分:2)

您希望使用模数运算符(%)。

这样的东西
if i%2 = 0 { new line }