2011-12-23 12 views
0

私は最高の状態でグーグルで遊んでいますが、無駄なことはありません。うまくいけば、これは簡単な問題です!MVC3 Editorを使用してHTMLテーブル行クラスを交互に変更する

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

しかし、テーブルの交互の行に交互のクラス(「奇数」、「偶数」)を入れたいと思います。私は次の方法を使ってみましたが、エディタテンプレート内でそれを使用すると "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> 

おかげで、すべて。

答えて

3

代わりにjavascript/jqueryを使用して実際のコードをきれいにすることはできませんか?それはスタイリング上の理由から、純粋だ場合は、ちょうど

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

にしてください

、あなたが使用することができますが:nth-child(N)使用して、あまりにもCSSでそれを行う:

tr:nth-child(even) { ... } 
tr:nth-child(odd) { ... } 
関連する問題