我对我的mvc视图中的表设计foreach循环有一个问题。Foreach循环表,最多2个单元格然后一个新行?
我希望我的循环为每个表格行输出最多2个单元格,如果它有数据循环出多于2个单元格,它将添加一个新行并继续循环该行单元格上的数据等。 。
任何人都有解决方案吗?
我对我的mvc视图中的表设计foreach循环有一个问题。Foreach循环表,最多2个单元格然后一个新行?
我希望我的循环为每个表格行输出最多2个单元格,如果它有数据循环出多于2个单元格,它将添加一个新行并继续循环该行单元格上的数据等。 。
任何人都有解决方案吗?
您不应该为此使用表格。
取而代之,将您的内容与float: left
或display: inline-block
一起放入<div>
,并使父元素足够宽以容纳两个孩子。
以两个为单位对集合进行迭代。在输出之前检查以确保i + 1 和项目可用,如果不是,则输出空白单元格。
<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>
你想看看使用模数运算符(%)。
喜欢的东西
if i%2 = 0 { new line }
这工作完美:) – Raskolnikoov 2011-03-18 07:44:24
我就遇到了这个问题,你提出的解决方案运作良好,对我来说太。只是好奇,这个概念是一个基本的东西,还是将它归类为小生境技巧。我问,因为我不会从我认识的基础知识中想到这一点,除非我碰到你的文章:你能详细说明为什么这会起作用吗?!感谢和upvoted! – 2013-04-26 13:40:18