繁体   English   中英

if / else在listview和formview中,asp.net c#

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM