asp repeater vb.net <img/>

时间:2016-08-25 09:37:24

标签: asp.net image repeater

我所拥有的是一个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"))%>" />

所以这样做是将visible设置为false,如果没有图像存在,否则它将通过图像。 那么我怎么能修改源代码以便它改为:

&#34; /Images/Thumbnailimages/posters/Noimage.jpg"

如果没有图像?

感谢

斯科特

2 个答案:

答案 0 :(得分:0)

首先,您使用的是常规HTML <img代码,而不是<asp:Image。在常规图像中设置visible=false不会做任何事情。

要么使用asp.net图像,要么使用类(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" />

  

请注意,使用Repeater中的值时,您使用单引号   当它是普通属性时,你使用双引号。

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) %>"

答案 1 :(得分:0)

基于评论的解决方案有:

相反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**'

您必须使用<>代替>,处理字符串,而不是数字。

我在Trim中添加Eval("event_logo").ToString.Trim ...可以为空,空格字符和条件为真

当然,现在您可以删除visible

的完整代码块