图像源是一个评估,但如果评估为空,我需要它完全消失

本文关键字:评估 消失 图像 一个 如果 | 更新日期: 2023-09-27 17:56:57

我的C#页面(基于Web的商店)上有以下代码:

<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 完全消失?

由于它在模板中,所以我不清楚...虽然我觉得应该是。

谢谢!
吉姆

图像源是一个评估,但如果评估为空,我需要它完全消失

您可以运行此方法两次 - 一次用于源链接本身,一次用于可见性检查:

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