【问题标题】:How to display a default image if Eval ("Thumbnail") is null - asp .net如果 Eval(“缩略图”)为空,如何显示默认图像 - asp .net
【发布时间】:2012-01-03 23:48:36
【问题描述】:

如果用户尚未为他们的新闻文章上传任何缩略图,我正在尝试上传默认缩略图。你能帮忙吗?

我一开始试过了,但是没用:

<%#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>

【问题讨论】:

    标签: asp.net data-binding eval thumbnails


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

    【讨论】:

      【解决方案2】:

      以下其中一项应该有效:

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

      【讨论】:

        【解决方案3】:

        一种简单的方法是创建一个公共方法,您可以使用该方法来确定数据项是否为空并相应地设置它。这样您就不必将所有代码内联。然后你会在你的代码后面的 vb .net 中有这样的东西:

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

        然后在中继器中调用它:

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

        另外,我建议使用Container.DataItem 而不是Eval,因为它产生的开销更少。所以最后会是这样的:

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

        【讨论】:

          【解决方案4】:

          如何为您的属性 Thumbail 设置一个默认值?

          那么当 Thumbnail 没有设置为非 null 值时,将显示默认图像,否则将显示用户缩略图。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-05-27
            • 1970-01-01
            • 2018-03-11
            • 2012-07-23
            • 1970-01-01
            • 2012-04-18
            • 1970-01-01
            相关资源
            最近更新 更多