Применить четный/нечетный стиль в шаблоне редактора MVC для модели List‹›

Я пытаюсь применить нечетный/четный стиль к строкам данных, отображаемым шаблоном редактора Razor в ASP.NET MVC 3.

Вот базовый код моего возможного представления:

@model List<MyProject.Whatever>

@Html.EditorFor(Model)

А вот и возможный шаблон редактора:

@model MyProject.Whatever

<div class="@( AnIInAnEvenOrOddRow ? "even" : "odd" )">
  @Model.SomeData @Html.TextBoxFor(m => m.SomeTextToType)
</div>

Кто-нибудь знает, как я могу определить четную/нечетную ситуацию внутри шаблона редактора?

Ваше здоровье...


person fredlegrain    schedule 08.09.2011    source источник


Ответы (1)


Я всегда интерпретирую строки данных == @WebGrid, поскольку эта функция уже включена, и вы можете легко реализовать разбиение по страницам и сортировку, почему бы не использовать их?

если вы все еще хотите делать все вручную, вы можете использовать что-то вроде

@{
    int iRow = 0;
}

@forach( var item in Model )
{
    iRow++;
    <div class="@( iRow % 2 == 0 ? "even" : "odd" )">
        @Model.SomeData @Html.TextBoxFor(m => m.SomeTextToType)
    </div>
}

Обновлено

помощник WebGrid, как и его двоюродный брат gridview в webforms, полностью настраиваемый, если вы делали webforms раньше, вы знаете, что можете просто добавить templatecolumn и добавить любые элементы управления, которые вам нравятся, помощник WebGrid такой же, например, как указано в эта замечательная статья:

@grid.GetHtml(        
    columns: grid.Columns(
        grid.Column(
             "Title", 
             "Movie", 
             @<text><div style='width: 10em'>@item.Title</div></text>), ...
person balexandre    schedule 08.09.2011
comment
Спасибо, что предложили альтернативы... Какой будет код для этого случая с веб-сеткой? - person fredlegrain; 08.09.2011
comment
у вас есть это в ссылке, которую я разместил о реализации paging - person balexandre; 08.09.2011
comment
Может быть, это я... Я не нашел его в статье (пример с редактируемыми данными внутри сетки, как текстовое поле). - person fredlegrain; 08.09.2011