2012-07-08 41 views
2

我期待從我的數據集中評估兩個字符串,以使用三元運算符來識別類描述。 運行此代碼時,我仍然遇到編譯器錯誤,指出「預期表達式」。 我認爲它與字符串的比較有關,但我嘗試了其他比較運算符,似乎無法使其工作。如何在三元運算符中使用ASP.NET Eval()函數?

<ItemTemplate> 
<tr> 
    <td><%# FormatDateTime(Eval("GameDate"), DateFormat.ShortDate)%></td> 
    <td class="<%# (Eval("Team1Score").ToString() > Eval("Team2Score").ToString()) ? 'Winner':'' %>"><%# Eval("Team1")%></td> 
    <td><%# Eval("Team1Score")%></td> 
    <td><%# Eval("Team2")%></td> 
    <td><%# Eval("Team2Score")%></td> 
</tr> 
</ItemTemplate> 

這裏是我的樣本數據:

GameDate  Team1 Team1Score  Team2 Team2Score  Winner 
    2012-04-14 Blues 5    Reds  3    Blues 
    2012-04-13 A's 4    B's  2    A's 
    2012-04-11 Blues 1    A's  1    Tie 
    2012-04-13 B's 3    Reds  2    B's 
    2012-04-10 Blues 7    B's  4    Blues 

謝謝您的幫助

回答

7

我認爲問題是,你正在嘗試兩個字符串之間做對比。只需將值轉換爲int或類似的值即可進行比較。因此,例如,你的比較更改爲類似下面:

<td class="<%# (Convert.ToInt32(Eval("Team1Score")) > Convert.ToInt32(Eval("Team2Score"))) ? 'Winner':'' %>"><%# Eval("Team1")%></td> 

或者,你可以將它轉換爲相應的類型:

<td class="<%# ((int)Eval("Team1Score") > (int)Eval("Team2Score")) ? 'Winner':'' %>"><%# Eval("Team1")%></td> 

希望這有助於!

1

試試這個

<%#Eval("Status").ToString()=="1" ? "ClubMember" : "Free User" %>