Логика внутри стола.для каждого цикла форматирования - PullRequest
4 голосов
/ 15 августа 2011

Есть ли способ, которым я мог бы ограничить тдс до 4 или любого числа в следующей настройке ... пожалуйста, смотрите код ниже.В данный момент все элементы модели отображаются в одной строке (как должно быть в соответствии с кодом).Если элементов дюжина, все они отображаются одной строкой ... Я хотел бы, чтобы отображались эти четыре в каждой строке, а не все в одной строке ...быть сделано?

<table>
  <tr>
       @foreach (var item in Model)
       {
            <td>     
                 @Html.DisplayFor(modelItem => item.fld1)
                 @Html.DisplayFor(modelItem => item.fld2)                       
            </td>      
       }
  </tr>
</table>

1 Ответ

3 голосов
/ 15 августа 2011

Вы можете сгруппировать их:

@{
    var chunkSize = 4;
    var groupedResult =
        from i in Model.Select((value, index) => new { Value = value, Index = index })
        group i.Value by i.Index / chunkSize into g
        select g;
}

<table>
    @foreach (var result in groupedResult)
    {
        <tr>
            @foreach (var item in result)
            {
                <td>
                    @Html.DisplayFor(modelItem => item.fld1)
                    @Html.DisplayFor(modelItem => item.fld2)  
                </td>
            }
        </tr>
    }
</table>

Очевидно, что тот факт, что вам нужно это сделать, означает, что ваша модель представления не адаптирована к этому представлению. Так что адаптируйте его и выполните эту группировку внутри действия вашего контроллера. Тогда ваш взгляд станет простым и читабельным, а не похож на какой-то код спагетти.

...