我有一个“专辑”数据库,我通过listview和formview(在2个单独的页面中)向客户展示了这些数据库:
<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则显示价格本身。
现在我想用(例如)div和红色显示“它是免费的”。
这是我渴望做的“方案”(请注意,它不是真正的c#代码):
<% if (Item.price == 0) { %>
<div style="color: red;">It's Free</div>
<% }
else { %>
String.Format(" {0:c}", Item.price)
<% } %>
不幸的是,上面的代码无效。要访问“Item.price”,我必须使用&lt;%#:%&gt;而不是&lt; %%&gt;。但如果我这样做,我就不能使用“if / else”!此外,String.Format()在这个“方案”中不起作用。
怎么做?
答案 0 :(得分: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>