我寧願做在服務器端的東西,所以,我sugestion是:
添加事件處理程序到你的中繼
<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;
}
}
}
它會做的。如果它不工作,請讓我知道。
我應該澄清圖像列只存儲字符串文件名。這個解決方案似乎只有src屬性會改變。我想一起刪除img標籤 –
您是使用VB.Net還是C#.Net? – pete
C# - 我只是在頁面中添加了一些jquery:檢查每個圖像,如果attr src爲null,則隱藏圖像。我也接受服務器端解決方案。 –