[英]if/else inside listview and formview, asp.net c#
我有一个“相册”数据库,并且已经通过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>
如您所见,如果price = 0,我使用三元运算符显示“ It's Free”,如果不为0,则显示价格本身。
现在,我想以(例如)div和红色显示“免费”。
这是我渴望做的“计划”(请注意,它并不是真正的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()在此“方案”中不起作用。
这个怎么做?
<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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.