如何在Repeater控件中使用条件Eval?

时间:2014-06-18 08:20:16

标签: asp.net

在这种情况下如何在Repeater控件中使用条件Eval:

if Actions.ShowDates(Eval("DatesAsPeriod").ToString(), Eval("DateList").ToString().Length) > 0
then show this:
    <a href="Details.aspx?ActionID=<%# Eval("ID") %>"><%# Eval("Artist") %></a>
else show this:
    <%# Eval("Artist") %>

2 个答案:

答案 0 :(得分:1)

您可以将其包装到占位符

<asp:PlaceHolder runat="server" 
  Visible='<%# Actions.ShowDates(Eval("DatesAsPeriod").ToString(), Eval("DateList").ToString().Length) > 0 %>'>
  <a href="Details.aspx?ActionID=<%# Eval("ID") %>"><%# Eval("Artist") %></a> 
</asp:PlaceHolder>
<asp:PlaceHolder runat="server"
  Visible='<%# Actions.ShowDates(Eval("DatesAsPeriod").ToString(), Eval("DateList").ToString().Length) == 0 %>'>
  <%# Eval("Artist") %>
</asp:PlaceHolder>

答案 1 :(得分:0)

您必须在代码标记中包含if语句:

<% if (Actions.ShowDates(Eval("DatesAsPeriod").ToString(), Eval("DateList").ToString().Length) > 0)
   {
%>
    <a href="Details.aspx?ActionID=<%# Eval("ID") %>"><%# Eval("Artist") %></a>
<%
   }
   else
   {
%>
   <%# Eval("Artist") %>
<%
   }
%>

在转发器中,你应该可以使用它:

<%# (Actions.ShowDates(Eval("DatesAsPeriod").ToString(), Eval("DateList").ToString()).Length > 0) ? "<a href="Details.aspx?ActionID='" + Eval("ID") + "'>" + Eval("Artist") + "</a>" : Eval("Artist") %>