2014-05-08 100 views
-2

我的foreach代碼交替行的顏色在foreach循環

請注意,我的第二個行都有一個不同的背景顏色。

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

我希望我的第二TR標籤有我的 「名字」 的第二值,例如:如果變種項[0]「FIRSTNAME」= 「GEM」,和VAR item [1] is 「FIRSTNAME」=「DIAMOND」。現在,如果我跑我的代碼,我的第一個TR標籤的值有「名字」 =「創業板」而在第二TR標籤值爲「名字」 =「創業板」爲好。現在我想讓我的第二個TR標記的值爲:「FIRSTNAME」=「DIAMOND」

+0

對不起,我的問題是錯誤的。我打算有兩個不同背景色的TR標籤。但是當我運行這段代碼時,我的例外輸出爲背景顏色工作,但我的FIRSTNAME的值重複。 –

+0

謝謝編輯@tommy –

回答

2

編輯 好吧,我現在更瞭解你的問題,你想要做的交替行顏色。最好的辦法是設置一個變量,讓你知道你是否交替。我已更新我的示例以顯示此內容。

然後,你只需要在你的foreach循環中使用一組<tr>。每個項目將只輸出一個<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; 
    } 
} 

這樣做是從真altRow變量轉換爲false,通過foreach循環每次迭代。如果屬實,這將設置背景顏色#FFF當假,#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> 
+0

但是在第一個TR中style =「background-color:#E0EBEB;」,而在第二個TR中style =「background-color:#fff;」。如果我只使用一個TR標籤,則GEM和DIAMOND都具有相同的背景顏色。 –

+0

我現在看到你的問題。請檢查我編輯的附加信息 – Tommy

+0

解析器錯誤行:@foreach(Model.fNameList中的var項)解析器錯誤消息:「@」字符後出現意外的「foreach」關鍵字。一旦進入代碼,你不需要像「@」那樣在foreach前加上結構。當我嘗試從foreach中刪除@時,它會運行但該行不交替。 –