Чередование классов строк таблицы HTML с использованием шаблона MVC3 EditorFor - PullRequest
0 голосов
/ 23 декабря 2011

Я гуглил как мог, но безрезультатно, надеюсь, это простая проблема!

Я использую Html.EditorFor для коллекции в объекте ViewModel.

Но я хочу, чтобы чередующиеся строки таблицы имели чередующийся класс ("нечетный", "четный"). Я попытался использовать следующий метод, который я выбрал для SO, но используя его в шаблоне Editor, сбрасывает значение «count», и оно становится одинаковым.

@helper AlternativeBackgrounds(string style1, string style2)
{
    if (ViewBag.count == null)
    {
        ViewBag.count = 0;
    }
    <text>class=" @(ViewBag.count % 2 == 1 ? style1 : style2)" </text>
    ViewBag.count++;
}

как в:

<tbody>
    <tr @AlternativeBackgrounds("odd", "even")>
        <td style="width:200px;">

Это возможно через код?

Чего я хочу достичь:

<tbody>
     @Html.EditorFor(x => x.SomeCollection)               
</tbody>

Шаблон редактора

@model = SomeModel
<tr class=??>
    <td style="width:200px;">
       @Html.LabelFor(x => x.SomeProperty)   
    </td>
    <td>
       @Html.LabelFor(x => x.SomeProperty)
    </td>
    ... etc

</tr>

Спасибо всем.

1 Ответ

3 голосов
/ 23 декабря 2011

Вместо того, чтобы делать все это, разве вы не можете сделать это с помощью javascript / jquery и сохранить свой реальный код чище?

Вы бы просто сделали

$(document).ready(function() {
  $('.myTable tr:odd').addClass('oddRow');
});

если это чисто по стилю, вы можете использовать это и с CSS, используя : nth-child (N) :

tr:nth-child(even) { ... }
tr:nth-child(odd) { ... }
...