Asp.net 列表视图中的条件显示
我有以下ListView代码:Asp.net 列表视图中的条件显示,asp.net,listview,Asp.net,Listview,我有以下ListView代码: <asp:ListView ID="lvOrders" runat="server"> <LayoutTemplate> <ul id="orderList"> <asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder> </ul>
<asp:ListView ID="lvOrders" runat="server">
<LayoutTemplate>
<ul id="orderList">
<asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder>
</ul>
</LayoutTemplate>
<ItemTemplate>
<li>
<% if (Mode == AdminSingle) { %>
<%# Eval("Offertype")%>
<% } %>
<%# Eval("Something")%>
</li>
</ItemTemplate>
</asp:ListView>
现在,我的问题是Eval(“Offertype”)在任何情况下都会被评估。但是sql查询对于这一部分来说相当繁重,如果我真的需要的话,我只想运行查询的这一部分。有没有干净的办法
我知道我可以做到:
<%# GetStatusInfo(Container.DataItem)%>
但是我将显示逻辑输入到代码中……对于我来说,一个比
Eval(“某物”)
更复杂的逻辑应该在代码后面进行评估。它使标记更具可读性。我想你的
是这里最好的选择。这只是一个简单的例子。实际上,这里有一些更复杂的显示逻辑。你真的会把它放在代码背后吗。例如,
不是比标记中的许多代码块更优雅吗?另外,如果您定义了一个方法,那么它背后的代码可以在控件/页面中重用(当然,如果必要);想象一下,如果没有它,你必须在控件/页面上复制并粘贴代码块。在这种情况下,我不会说在页面中使用GetStatusInfo(Container.DataItem)将显示逻辑放在页面中,因为实际逻辑在GetStatusInfo函数中,你只能从页面调用它。至于我,应该在代码隐藏中评估比“评估”(“某物”)更复杂的逻辑。它使标记更具可读性。我想你的
是这里最好的选择。这只是一个简单的例子。实际上,这里有一些更复杂的显示逻辑。你真的会把它放在代码背后吗。例如,
不是比标记中的许多代码块更优雅吗?另外,如果您定义了一个方法,那么它背后的代码可以在控件/页面中重用(当然,如果必要);想象一下,如果没有它,你必须在控件/页面上复制并粘贴代码块。在这种情况下,我不会说在页面中使用GetStatusInfo(Container.DataItem)将显示逻辑放在页面中,因为实际逻辑在GetStatusInfo函数中,你只能从页面调用它。