如果Eval(“缩略图”)为空时如何显示默认图像 - asp .net

问题描述:

如果用户没有上传任何缩略图的新闻文章,我正尝试上传默认缩略图图像。你能帮忙吗?如果Eval(“缩略图”)为空时如何显示默认图像 - asp .net

我想在第一,但它没有工作:

<%#Eval("Thumbnail")!=null ? Eval("Thumbnail"):"~/Images/test.jpg"%>" alt="<%#Eval("Title") %>" 

我有一个中继器下面的代码:

  <asp:Repeater ID="rptRotator" runat="server"> 
        <HeaderTemplate> 
         <ul> 
        </HeaderTemplate> 
        <ItemTemplate> 
         <li> 
          <div class="widgetContent"> 
           <img class="thumbNail" src="<%#Eval("Thumbnail") %>" alt="<%#Eval("Title") %>" /> 
           <h4 style="width: 155px;"> 
            <a href="/news/<%#Eval("PublicationDate","{0:yyyy/MM/dd}")%>/<%#Eval("UrlName") %>"> 
             <%#Eval("Title") %></a></h4> 
           <div class="clear"> 
           </div> 
           <span class="newsDate"> 
            <%# Eval("PublicationDate", "{0:dd MMMM yyyy}")%></span> 
           <div class="widgetTextSummary"> 
            <p> 
             <%#Eval("Summary").ToString().Substring(0,60)%>...</p> 
           </div> 
          </div> 
         </li> 
        </ItemTemplate> 
        <FooterTemplate> 
         </ul></FooterTemplate> 
       </asp:Repeater> 

如何给你的财产Thumbail默认值?

然后,当缩略图未设置为非空值时,将显示默认图像,否则会显示用户缩略图。

一个简单的方法是创建一个公共方法,您可以使用它来确定数据项是否为null并进行相应设置。这样你就不必把所有的代码放在一起。这样,你会在VB.NET中这样的事情在后面的代码:

Public Function ProcessDataItem(myDataItemValue As Object) As String 
    If myDataItemValue Is Nothing Then Return "~/Images/test.jpg" 

    Return myDataItemValue.ToString() 
End Function 

然后调用它在转发:,我建议使用Container.DataItem而不是Eval,因为它创造

<%# ProcessDataItem(Eval("Title")) %>" alt="<%#Eval("Title") %>" 

而且较少的开销。那么到底它会是这样的:

<%# ProcessDataItem(Container.DataItem("Title")) %>" alt="<%#Container.DataItem("Title") %>" 

下列之一应该工作:

<%# Eval("Thumbnail") ?? "/images/default.png" %> 

<%# Eval("Thumbnail") == DBNull.Value ? "/images/default.png" : Eval("Thumbnail") %> 

<asp:Image ID="imgProd" runat="server" src="<%#Eval('Thumbnail')" 
onerror="this.onload = null; this.src='ImageurlORAnyImageHere.jpg';"/>