2012-02-27 11 views
1

私は何か非常に簡単にしたい、私は現在のDataItemの値(つまりNULLではない)があるときにのみasp:imageを表示します。asp.net c#条件付きデータリピータ

Image1は、現在のDataItemのフィールドであるImage1の値(Eval( "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

あなたはそれが分離コードaspxページ@

<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

1

からnullであるかどうかをチェックしてみてください。

<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

値がnullの場合、var.ToString()が失敗して例外をスローする可能性があります。 –

+0

Aww、私は自分の投稿を更新します。やってみよう。 – Mariusz

関連する問題