2014-04-08 41 views
0

我有 「相冊」 的數據庫,我已經通過的ListView和FormView(在2個獨立的頁)他們展示給客戶:的if/else裏面的ListView和FormView,asp.net C#

<asp:ListView ID="Albums_List" runat="server" DataKeyNames="id" ItemType="Trying.Models.Album" SelectMethod="GetAlbum"> 
    <ItemTemplate> 
     <%#:(Item.price == 0) ? "It's Free!" : String.Format("Price: {0:c}", Item.price)%><br /> 
     Artist:<%#:" " + Item.artist %><br /> 
    </ItemTemplate> 
</asp:ListView> 

爲你可以看到,如果價格= 0,我已經使用三元運算符顯示「它是免費的」,如果它不是0,則顯示價格本身。

現在我想要顯示「它是免費的」格和紅顏色。

這裏是什麼我渴望做「方案」(PLZ注意它不是真正的C#代碼):

<% if (Item.price == 0) { %> 
    <div style="color: red;">It's Free</div> 
<% } 
else { %> 
    String.Format(" {0:c}", Item.price) 
<% } %> 

不幸的是,上面的代碼是行不通的。要訪問「Item.price」,我必須使用<%#:%>而不是<%%>。但如果我這樣做,我不能使用「if/else」!此外,String.Format()在此「方案」中不起作用。

該怎麼辦?

+0

如果我使用上面的「scheme」(現在沒有string.format()),我得到這個:名稱「Item」在當前上下文中不存在。 – Ali

+0

如果我使用<%: %>,除了我上面提到的錯誤,我也得到這個:無效的表達式術語「if」 – Ali

回答

4
<ItemTemplate> 
    <asp:PlaceHolder runat="server" visible='<%# Item.price == 0 %>'> 
      <div style="color: red;">It's Free</div> 
    </asp:PlaceHolder> 

    <asp:PlaceHolder runat="server" visible='<%# Item.price > 0 %>'> 
     <%# String.Format(" {0:c}", Item.price) %> 
    </asp:PlaceHolder> 
</ItemTemplate> 
+1

是的!這是工作!非常感謝! – Ali