以固定列数显示表中的记录

时间:2015-08-07 14:21:37

标签: asp.net-mvc html5 razor

<table>
@{var counter = 1; }
<tr>
    @foreach (var item in Model)
{
        <td>
            @Html.DisplayFor(modelItem => item.courseName)
            @Html.DisplayFor(modelItem => item.courseSubject)
            @Html.DisplayFor(modelItem => item.institute)
        </td>
        if (counter % 3 == 0)
    {
            @:</tr><tr> 
    }
}
       </tr>
</table>

我想在一个表中显示每行3列的记录。这就是我尝试的方式。但仍然是所有记录在一行。我怎么能做到。

2 个答案:

答案 0 :(得分:1)

您需要更新循环内的计数器变量。应该这样做。

<table>
    @{var counter = 1; }
    <tr>
        @foreach (var item in Model)
        {
            <td>
                @Html.DisplayFor(modelItem => item.courseName)
            </td>
            if(counter%3 == 0)
             {
                 @:</tr><tr>
             }
            counter++;
        }
    </tr>
</table>

答案 1 :(得分:0)

如果我正确地阅读您的问题,您希望每行3列?

如果是这种情况,请对HTML结构进行以下更改。您需要添加三个<td>元素才能生成三列

@foreach (var item in Model)
{
    <td>
        @Html.DisplayFor(modelItem => item.courseName)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.courseSubject)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.institute)
    </td>
    if (counter % 3 == 0)
    {
        @:</tr><tr> 
    }
}

像Shyju在他的回答中提到的那样,我不确定你在那里使用计数器做什么,因为它不会在循环的每次迭代中递增。