asp中继器vb.net<img>

asp repeater vb.net <img>

我有一个 asp 转发器,它为在网页的管理部分创建的事件传递信息。 允许在这些事件上添加图像,我能够正确地显示图像,但我试图做的是在没有可用图像的情况下显示通用图像。 我刚才的是:

    <img id="eventlogoholder"  visible="<%#If(Eval("event_logo").ToString > "", "True", "False")%>", title= "<%# Eval("event_title").ToString%>" alt="" src="<%# Replace(Eval("event_logo").ToString, Application("IMAGEFOLDER"), Application("IMAGETHUMBNAILS"))%>" />

因此,如果不存在图像,则将可见设置为 false,否则它将通过图像显示。 那么我该如何修改源代码,使其变为:

"/Images/Thumbnailimages/posters/Noimage.jpg"=14=]

如果没有图像?

谢谢

斯科特

首先,您使用的是常规 HTML <img 标签,而不是 <asp:Image。在常规图像中设置 visible=false 不会有任何作用。

使用 asp.net 图像或以其他方式设置可见性,例如 class (class="hiddenImage") 或内联 CSS (style="display: none")。

其次你的IF语句是错误的。它应该看起来像这样 <%# Not String.IsNullOrEmpty(Eval("event_logo").ToString) %>.

但最好使用 asp.net 图片,这样您可以更好地控制。

<asp:Image ID="eventlogoholder" runat="server" Visible='<%# Not String.IsNullOrEmpty(Eval("event_logo").ToString) %>' ImageUrl='<%# Replace(Eval("event_logo").ToString, Application("IMAGEFOLDER"), Application("IMAGETHUMBNAILS")) %>' ToolTip='<%# Eval("event_title").ToString %>' AlternateText="myAltText" />

Note that when using a value from the Repeater you use a single quote and when it's a normal attribute you use double quote.

PS 使用 http://www.carlosag.net/tools/codetranslator 将代码从 C# 翻译为 VB,因此它可能不是 100% 正确。

更新

ImageUrl='<%# IIf ( String.IsNullOrEmpty(Eval("event_logo").ToString), "/Images/Thumbnailimages/posters/Noimage.jpg", Eval("event_logo").ToString) %>'

src="<%# IIf ( String.IsNullOrEmpty(Eval("event_logo").ToString), "/Images/Thumbnailimages/posters/Noimage.jpg", Eval("event_logo").ToString) %>"

其中有一个基于评论的解决方案:

而不是 Else 将其替换为 ,(句点)... If(condition, do if true, do if false)

src='<%#If(Eval("event_logo").ToString.Trim <> "", Replace(Eval("event_logo").ToString, Application("IMAGEFOLDER"), Application("IMAGETHUMBNAILS")) , "/Images/Thumbnailimages/posters/Noimage.jpg‌​")%>'

因为你使用 eval 你必须将所有代码放在 ' 而不是 ", src='**code**'

你必须使用 <> 而不是 >,你处理的是字符串,而不是数字。

我在 Eval("event_logo").ToString.Trim 中添加 Trim ...可以是空的,space 字符和条件将为 True

当然,现在您可以删除 visible

的完整代码块