如果用户没有为他们的新闻文章上传任何缩略图,我正在尝试上传默认缩略图。你能帮忙吗?
我最初尝试过,但是没有用:
<%#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>
答案 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';"/>