Asp.net 如果数据库不为null,则在中继器中有条件地显示图像
我有一个中继器,包括图像。然而,有一个形象,可能不是在所有的促销在这个重复Asp.net 如果数据库不为null,则在中继器中有条件地显示图像,asp.net,asprepeater,Asp.net,Asprepeater,我有一个中继器,包括图像。然而,有一个形象,可能不是在所有的促销在这个重复 <div class="promo"> <h2><%# ((Promotion)Container.DataItem).Title %></h2> <p><img src="/Uploads/<%# ((Promotion)Container.DataItem).Image %>" alt="" class="promoImg"
<div class="promo">
<h2><%# ((Promotion)Container.DataItem).Title %></h2>
<p><img src="/Uploads/<%# ((Promotion)Container.DataItem).Image %>" alt="" class="promoImg" /><%# ((Promotion)Container.DataItem).Description %></p>
<p><em><%# ((Promotion)Container.DataItem).Restrictions %></em></p>
</div>
“alt=”“class=“promoImg”/
有人能告诉我,如果条目没有空字段,如何进行唯一显示吗?这应该可以做到: 对于C#Net:
“alt=”未找到图像“class=”promoImg“/>
我添加了一些jquery来检查页面上的每个图像,以确保有一个与该促销相关的图像:
$(document).ready(function () {
$('.promoImg').each(function (index) {
if ($(this).attr('src') == "/Uploads/") {
$(this).hide();
}
});
}))
我仍然对服务器端解决方案感兴趣我认为您可以使用panel来实现这一点
<div class="promo">
<h2><%# ((Promotion)Container.DataItem).Title %></h2>
<asp:Panel ID="pnlImage" runat="server">
<p><img src="/Uploads/<%# ((Promotion)Container.DataItem).Image %>" alt="" class="promoImg" /><%# ((Promotion)Container.DataItem).Description %></p>
</asp:Panel>
<p><em><%# ((Promotion)Container.DataItem).Restrictions %></em></p>
当面板不可见时,它将不会被渲染。为什么不使用
<% if()%>
判断是否存在图像源?如果没有,则没有响应。因此我们可以保存更多内容我更喜欢在服务器端做一些事情,因此,我的建议是: 将事件处理程序添加到中继器
<asp:Repeater ID="myRpt" runat="server" onitemdatabound="myRpt_ItemDataBound" >
<ItemTemplate>
<div class="promo">
<h2>
<%# ((Promotion)Container.DataItem).Title %></h2>
<p>
<asp:Image ID="imgTest" CssClass="promoImg" ImageUrl="" runat="server" />
<%# ((Promotion)Container.DataItem).Description %></p>
<p>
<em>
<%# ((Promotion)Container.DataItem).Restrictions %>
</em>
</p>
</div>
</ItemTemplate>
</asp:Repeater>
它会成功的。如果不起作用,请告诉我。我应该澄清图像列只存储字符串文件名。在这个解决方案中,似乎只有src属性会改变。我想一起删除img标记你使用的是VB.Net还是C#.Net?C#-我只是在页面中添加了一些jquery:检查每个图像,如果attr src为null,则隐藏图像。我也对服务器端解决方案持开放态度。needToShowImage定义在哪里?您写道:“有一个映像可能不会出现在所有的促销活动中”,那么,请告诉我?不需要显示图像的规则是什么。如果该字段在列中没有显示文件名,则图像不需要显示。
<% if()%>
<asp:Repeater ID="myRpt" runat="server" onitemdatabound="myRpt_ItemDataBound" >
<ItemTemplate>
<div class="promo">
<h2>
<%# ((Promotion)Container.DataItem).Title %></h2>
<p>
<asp:Image ID="imgTest" CssClass="promoImg" ImageUrl="" runat="server" />
<%# ((Promotion)Container.DataItem).Description %></p>
<p>
<em>
<%# ((Promotion)Container.DataItem).Restrictions %>
</em>
</p>
</div>
</ItemTemplate>
</asp:Repeater>
protected void myRpt_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Image imgTest = (Image)e.Item.FindControl("imgTest");
Promotion pActual = (Promotion)e.Item.DataItem;
bool needToShowImage = !String.IsNullOrEmpty(pActual.Image)
if (needToShowImage)
{
imgTest.ImageUrl = "Uploads/" + pActual.Image;
}
else
{
imgTest.Visible = false;
}
}
}