以编程方式在表中启动新的TableRow

时间:2013-03-28 13:27:08

标签: c# html html-table

我正在尝试加载模型并将每个模型设置为单独的<td>,当我达到5 <td>时,我想自动启动一个新的<tr>,但它并没有真正起作用用if语句。是否有可能或者我应该采用完全不同的方法?

这是我的代码:

<tr>
        @for (int i = 0; i < Model.Count; i++)
        {
            <td>
                <img width="200px" src="@Url.Action("GetImage", "Beheer", new { productId = Model[i].product_id }) " alt="pasfoto"/><br />
                <center><b>@Html.ActionLink(Model[i].naam, "PrProduct", "Categorie", new { id = Model[i].product_id }, null)</b></center>
                <center>€ @Html.Label(Model[i].prijs)</center> 
            </td>
        }
</tr>

2 个答案:

答案 0 :(得分:3)

使用模运算符%。每次i%5 == 0,在td

周围打印一行
@for (int i = 0; i < Model.Count; i++)
{
    @if(i%5 == 0)
    {
        <tr>
    }
    <td>
        <img width="200px" src="@Url.Action("GetImage", "Beheer", new { productId = Model[i].product_id }) " alt="pasfoto"/><br />
        <center><b>@Html.ActionLink(Model[i].naam, "PrProduct", "Categorie", new { id = Model[i].product_id }, null)</b></center>
        <center>€ @Html.Label(Model[i].prijs)</center> 
    </td>
    @if(i%5 == 0)
    {
        </tr>
    }
}

所以当i为0,5,10,15等时,你会有一个表格行。

答案 1 :(得分:1)

@for (int i = 0; i < Model.Count; i++)
{
@if(i%5 == 0)
{
    <tr></tr>
}
<td>
    <img width="200px" src="@Url.Action("GetImage", "Beheer", new { productId = Model[i].product_id }) " alt="pasfoto"/><br />
    <center><b>@Html.ActionLink(Model[i].naam, "PrProduct", "Categorie", new { id = Model[i].product_id }, null)</b></center>
    <center>€ @Html.Label(Model[i].prijs)</center> 
</td>
}

以上代码对我有用。它与Havelock给出的答案没有太大的不同,但是如果你不在同一个if语句中关闭html标签,它就不会关闭上面代码中的括号。如果使用边框,这种方式看起来可能不太好,因为我认为它会显示一个空行?但是,对我来说这很好用:)