0

私はできる限りグーグルで検索しましたが、うまくいきませんでした。うまくいけば、これは単純な問題です!

ViewModel オブジェクトのコレクションに Html.EditorFor を使用しています。

しかし、テーブルの交互の行に交互のクラス(「奇数」、「偶数」)が必要です。SOで取り上げた次の方法を使用してみましたが、エディターテンプレート内で使用すると、「カウント」値がリセットされ、すべて同じになります。

@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>

皆さんありがとう。

4

1 に答える 1

3

そのすべてを行う代わりに、javascript / jquery でそれを行い、実際のコードをよりクリーンに保つことはできませんか?

あなたはただするだろう

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

純粋にスタイリング上の理由がある場合は、CSS で:nth-child(N)を使用してそれを行うこともできます:

tr:nth-child(even) { ... }
tr:nth-child(odd) { ... }
于 2011-12-23T11:24:05.890 に答える