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

时间:2011-11-22 15:38:34

标签: asp.net data-binding eval thumbnails

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

我最初尝试过,但是没有用:

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

4 个答案:

答案 0 :(得分:2)

执行此操作的一种简单方法是创建一个公共方法,您可以使用该方法确定数据项是否为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

然后在转发器中调用它:

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

此外,我建议使用Container.DataItem代替Eval,因为它会减少开销。所以最终它会是这样的:

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

答案 1 :(得分:0)

如果要将属性Thumbail设为默认值?

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

答案 2 :(得分:0)

以下其中一项应该有效:

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

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

答案 3 :(得分:0)

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