【问题标题】:How to make image visible in C#如何在 C# 中使图像可见
【发布时间】:2014-10-09 11:51:47
【问题描述】:

我在我的 ASP.NET 中声明了一张图片,并在默认情况下使用style="visbility:hidden;" 将其设置为隐藏。无论如何可以从 C# 访问此图像并更改其可见性?这是来自 ASP.NET 的 img 行:

<img src="canoe.png" alt="Boat Trailer" height="350px" width="600px" id="canoe" style="float:right; margin-right: 100px; visibility:hidden;" />

【问题讨论】:

  • 这是网络表单还是 MVC?
  • img 在客户端运行,C# 在服务器上运行。使用asp:Image Visisble="false" 代替runat="server" 标签。这样你就可以在服务器端访问它。

标签: c# css asp.net image


【解决方案1】:

选项 1 您可以在服务器端通过添加 ID 属性和runat='server' 来更改它。

选项 2 您可以使用 ASP.NET Image 控件并在那里应用您的更改。 &lt;asp:Image id="myimg" runat='server'.../&gt;

但是,如果您使用此选项,您仍然应该使用 CSS/Javascript 来显示/隐藏您的图像,因为在服务器端控件上设置 Visible='false' 会阻止 HTML 完全呈现,我怀疑这是您的输出期待。

如果您在服务器端执行此逻辑,为什么需要将图像渲染为隐藏?如果您根据用户输入显示图像,那么您应该在客户端 Javascript 上进行。

【讨论】:

    【解决方案2】:

    您需要首先通过添加runat='server' 和一个ID 将它变成一个服务器标签。然后您可以在页面加载之前更改其属性,如下所示:

    <IMG ID>.Style["visibility"] = "visible";
    

    替换为您的元素的 ID。

    关于其他答案的注意事项: C# Visibility 属性不会更改 CSS 可见性,但实际上会删除或添加元素,如果您在元素仍设置为 visibility: hidden 时简单地更改它,那么 它仍然不可见

    Discalimer,这是一个未经测试的解决方案,您可能需要检查使用 Style 属性的语法

    【讨论】:

      【解决方案3】:

      如果只是服务器端来控制图片可见性,就用,

             <asp:Image ID="Image1" runat="server" Visible="false" />
      

      【讨论】:

        【解决方案4】:

        改用 ASP:Image。

        <ASP:Image id="myImage" Visibile="False" ImgUrl="link" runat="server">
        

        然后你可以在后端访问它:

        myImage.Visible = true;
        

        【讨论】:

        • Visible 设置为 false 将阻止 节点完全呈现,而不是像原始 CSS 那样充当占位符。
        • msdn.microsoft.com/en-us/library/… "如果此属性为 false,则不呈现服务器控件。在组织页面布局时应考虑到这一点。"
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-19
        • 1970-01-01
        • 2011-05-15
        • 1970-01-01
        • 1970-01-01
        • 2014-03-06
        相关资源
        最近更新 更多