2012-02-27 50 views
1

我想做一些非常簡單的事情,當我有當前DataItem的值(即不是NULL)時,只顯示一個asp:image。在數據中繼器中有條件的asp.net c#

如下所示,只有當Image1的值(即Eval(「Image1」))是當前DataItem中的一個字段時才應該輸出Image1。

<asp:PlaceHolder ID="NewsPlaceHolder" runat="server"> 
    <asp:Repeater ID="NewsRepeater" runat="server"> 
     <ItemTemplate> 
      <div class="newsItem"> 
       <h3><%# Eval("Title") %></h3> 
       <div class="images"> 
        <asp:Image ID="Image1" runat="server" ImageUrl='<%# UrlHelper.NewsImageUrl((int)Eval("Id"),1) %>' /> 
        <asp:Image ID="Image2" runat="server" ImageUrl='<%# UrlHelper.NewsImageUrl((int)Eval("Id"),2) %>' /> 
       </div> 
       <div class="content"><%# Eval("Content") %></div> 
      </div> 
      <br class="clear" /> 
     </ItemTemplate> 
    </asp:Repeater> 
</asp:PlaceHolder> 

是否有一些簡單的條件語句可以在ASPX頁面中使用?非常感謝!

回答

6

你可以嘗試檢查如果是從代碼隱藏

<asp:Image ID="Image1" runat="server" visible='<%# HasData(Eval("image")) %>' ImageUrl='<%# UrlHelper.NewsImageUrl((int)Eval("Id"),1) %>' 

C#

public bool HasData(object img) 
{ 
    if(img!=null) {return true;} 
    return false; 
} 
+0

謝謝!這樣可行。我希望在打我的筆記本電腦屏幕之前張貼了...... doh! – Jono 2012-02-27 22:02:23

1

@ aspx頁面空。

<div class="images"> 
        <asp:Image ID="Image1" runat="server" ImageUrl='<%# UrlHelper.NewsImageUrl((int)Eval("Id"),1) %>' Visible = '<%#(Container.DataItem != null) ? true: false) %>' /> 
        <asp:Image ID="Image1" runat="server" ImageUrl='<%# UrlHelper.NewsImageUrl((int)Eval("Id"),2) %>' Visible = '<%#(Container.DataItem != null) ? true: false) %>' /> 
</div> 
+0

var.ToString()可能失敗並拋出異常,如果值爲空 – 2012-02-27 21:46:37

+0

Aww,我會更新我的文章。現在就試試。 – Mariusz 2012-02-27 21:47:09