【问题标题】:How do I conditionally control the visibility of a control in ASP.NET?如何有条件地控制 ASP.NET 中控件的可见性?
【发布时间】:2011-12-28 06:55:55
【问题描述】:

我有一个 asp:Image。我希望显示此控件,前提是 <%#Eval("Image")%> 不是 null

我不知道如何写这个条件语句。我想说的是这样的(如果从数据结构中获取的'image'的值不为null,则显示图像。否则,不要):

<%#Eval("Image")%> != 0 ? <asp:Image ID="image" runat="server"/>

我知道这不是语法 - 将其视为伪代码,因为我从未在标记中编写条件语句。

有什么想法吗? :)

【问题讨论】:

    标签: c# asp.net html css


    【解决方案1】:

    您可以将控件的Visible 属性绑定到表达式并在页面加载时调用DataBind()

    <asp:Image runat="server" id="image" Visible='<%#Eval("Image") != null %>' />
    

    如果您不使用服务器控件并且想要显示/隐藏简单标记,您可以简单地将其包含在 if 语句中:

    <% if ( condition ) { %>
        <img src='<%= linkToImageSource %>' />
    <% } %>
    

    【讨论】:

    • @Mehrad Afshari 您认为您可以提出其他建议吗,因为即使有条件,图像仍会显示?
    • @Sean 你在页面加载过程中打电话给DataBind 吗?您确定表达式Eval("Image") 为空吗?我确信该方法通常有效。
    • Eval("Image") 实际上不返回 null。它只是空白。然而,当来到“”时它仍然没有工作
    • 我设法通过从代码隐藏访问转发器并从那里检查来解决它!其他用户可能会觉得您的建议有帮助,所以我会接受它:)
    猜你喜欢
    • 2011-12-06
    • 1970-01-01
    • 1970-01-01
    • 2015-07-11
    • 2023-03-28
    • 1970-01-01
    • 2012-07-21
    • 2011-08-24
    • 2011-10-05
    相关资源
    最近更新 更多