2012-02-27 2 views
1

Я хочу сделать что-то очень простое, отображать только asp: image, когда у меня есть значение (т. Е. Не NULL) для текущего DataItem.asp.net C# условно в ретрансляторе данных

Как показано ниже, изображение 1 должно выводиться только в том случае, если для изображения 1 есть значение (т. Е. 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

Вы можете попробовать проверить, если он является недействительным из коды

<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

Спасибо! Это работает. Мне жаль, что я не опубликовал его до того, как попал на экран ноутбука ... да! – Jono

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() может выйти из строя и передать исключение, если значение равно null –

+0

Все, я обновлю сообщение. Попробуй это сейчас. – Mariusz

Смежные вопросы