if语句与DataBinder.Eval

时间:2015-06-10 12:51:29

标签: c# asp.net .net

代码:

<asp:Repeater ID="Repeater2" runat="server">
  <HeaderTemplate>
    <table cellspacing="0" cellpadding="0" border="0" width="100%">
  </HeaderTemplate>
  <ItemTemplate>
    <tr>
    <td colspan="3" style="height: 1px; width: 100%; " align="center">
    <div style="height: 1px; width: 90%; background-color: #cccccc;"></div>
    </td>
    </tr>
       <% if (DataBinder.Eval(Container.DataItem, "productID").ToString() == "32668" || DataBinder.Eval(Container.DataItem, "productID").ToString() == "33829" || DataBinder.Eval(Container.DataItem, "productID").ToString() == "33831")
          { %>

    <tr>
      <td style="height: 132px; width: 25%; padding-left:20px;"><a href='product_detail_<%# DataBinder.Eval(Container.DataItem, "productID")%>.aspx'> <img src='<%= System.Configuration.ConfigurationManager.AppSettings["ProductImageUrl"] %>t_<%# DataBinder.Eval(Container.DataItem, "ProductImg")%>'
                                        border="0" /></a> </td>
      <td align="left" valign="top"><br>
        <a href='product_detail_<%# DataBinder.Eval(Container.DataItem, "productID")%>.aspx'> <font color="#000000"><b> <%# DataBinder.Eval(Container.DataItem, "ProductName")%> </b></font></a> <br />
        <br />
        <span class="detailSpan"> <%# DataBinder.Eval(Container.DataItem, "shortDesc")%> </span></td>
      <td style="width: 15%;" align="center"><b> <%# WebDirectBrands.Utility.FormatNumber(Convert.ToDecimal(DataBinder.Eval(Container.DataItem, "ProductPrice")))%> </b> <br />
        <br />
        <a href='product_detail_<%# DataBinder.Eval(Container.DataItem, "productID")%>.aspx'> <img src="images/Details-Link.gif" border="0" /></a> <br />
        <a href='add_to_cart.aspx?productid=<%# DataBinder.Eval(Container.DataItem, "productID")%>'> <img src="images/AddtoCart-Link.gif" border="0" style="margin-top: 5px;" /></a> </td>
    </tr>
      <% } %>
    <tr>
      <td colspan="3" height="15px"></td>
    </tr>
  </ItemTemplate>
  <FooterTemplate>
    </table>
  </FooterTemplate>
</asp:Repeater>

所以我有40个项目,我想在精选产品中只展示3个。我想使用if语句和运算符||但问题是DataBinder.Eval。我找不到可以帮助我的答案。有人能帮我吗?是否有一些较短的解决方案&#34;短的如果&#34;(a == c?b:c)或某些解决方案与asp:repeater :)

1 个答案:

答案 0 :(得分:0)

在绑定到转发器之前过滤数据将是最佳解决方案。 但是,您可以订阅ItemDataBound事件并决定隐藏或显示特定项目。

See this link on MSDN

在事件处理程序中,您可以执行

e.Item.Visible = false;