我在C#页面上有这个代码(基于网络的商店):
<asp:TemplateField HeaderText="" HeaderStyle-Width="65" Visible="true">
<ItemStyle HorizontalAlign="Left" />
<HeaderStyle HorizontalAlign="Left" CssClass="columnHeader gradient" ForeColor="Black" />
<ItemTemplate>
<img src='<%#GetSecureThumbnailUrl(Eval("Product"))%>' width="65px" />
</ItemTemplate>
</asp:TemplateField>
和GetSecureThumbnailUrl
是这样的:
public string GetSecureThumbnailUrl(object product)
{
string secureUrl;
Product this_product = (Product)product;
if (this_product != null)
{
secureUrl = this_product.ThumbnailUrl.Replace("http:", "https:");
return (secureUrl);
}
else
{
return("");
}
}
我的问题是:该网页的<img>
代码没有有效的图片来源,因此会显示为损坏的图片。
我的问题是:如果GetSecureThumbnailUrl解析为“”返回,如何让img完全消失?
因为它在模板中,所以我不清楚......虽然我觉得它应该是。
谢谢!
吉姆
答案 0 :(得分:1)
您可以运行此方法两次 - 一次用于源链接本身,另一次用于可见性检查:
<img src='<%#GetSecureThumbnailUrl(Eval("Product"))%>'
width="65px"
runat="server"
Visible='<%#GetSecureThumbnailUrl(Eval("Product")) != null%>' />
或者您可以专门为可见性定义一个简化函数:
public string ShowThumbnail(object product)
{
string secureUrl;
Product this_product = (Product)product;
return (this_product != null)
}
<img src='<%# GetSecureThumbnailUrl(Eval("Product")) %>'
width="65px"
runat="server"
Visible='<%# ShowThumbnail(Eval("Product")) %>' />