-2

私の foreach コード

2 行目の背景色が異なることに注意してください。

@foreach (var item in Model.fNameList)
{
    <tr>
        <td style ="background-color:#E0EBEB; height:40px;width:100px;"><a href ="#" onclick='call();' style ="text-decoration:none; text-decoration-color:black;"> T-00001</a></td>
        <td style ="background-color:#E0EBEB; height:40px;width:200px;"> @item.firstName</td>
    </tr> 
    <tr>
        <td style ="background-color:#fff; height:40px;width:100px;"><a href ="#" onclick="call();" style ="text-decoration:none; text-decoration-color:black;"> T-00001</a></td>
        <td style ="background-color:#fff; height:40px;width:200px;"> @item.firstName</td>
    </tr>
}

たとえば、var item[0]が" FIRSTNAME " = "GEM"で、var item[1]が" FIRSTNAME " = "DIAMOND"の場合。コードを実行すると、最初のTRタグの値は "FIRSTNAME " = "GEM"になり、2 番目のTRタグの値も"FIRSTNAME" = "GEM"になります。次に、2 番目のTRタグに"FIRSTNAME" = "DIAMOND"という値を設定します。

4

1 に答える 1

3

編集 OK、私はあなたの問題をより理解しています。行の色を交互にしたいのです。これを行う最善の方法は、交代しているかどうかを知ることができる変数を設定することです。これを示すために例を更新しました。

<tr>次に、 foreach ループでのセットが 1 つだけ必要です。各項目は正確に 1 つを出力します<tr>

@{
    var altRow = false;
    foreach (var item in Model.fNameList)
    {
        <tr>
            <td style ="background-color:@(altRow ? "#fff" : "#E0EBEB"); height:40px;width:100px;"><a href ="#" onclick='call();' style ="text-decoration:none; text-decoration-color:black;"> T-00001</a></td>
            <td style ="background-color:@(altRow ? "#fff" : "#E0EBEB"); height:40px;width:200px;"> @item.firstName</td>
        </tr>
        altRow = !altRow; 
    }
}

これが行うことは、foreach ループの反復ごとに altRow 変数を true から false に切り替えることです。true の場合は背景色を #fff に設定し、false の場合は #E0EBEB に設定します。

したがって、次のデータを使用してこのコードを実行すると、次のようになります。

item[0].FirstName = "Gem"
item[1].FirstName = "Diamond"

次に、期待される出力は次のようになります

    <tr>
        <td style ="background-color:#E0EBEB; height:40px;width:100px;"><a href ="#" onclick='call();' style ="text-decoration:none; text-decoration-color:black;"> T-00001</a></td>
        <td style ="background-color:#E0EBEB; height:40px;width:200px;">Gem</td>
    </tr> 
    <tr>
        <td style ="background-color:#fff; height:40px;width:100px;"><a href ="#" onclick='call();' style ="text-decoration:none; text-decoration-color:black;"> T-00001</a></td>
        <td style ="background-color:#fff; height:40px;width:200px;">Diamond</td>
    </tr> 
于 2014-05-08T00:03:44.807 に答える