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
的完整代码块
我有一个 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