在ASP.NET中,如何有条件地控制控件的可见性?

5

我有一个asp:Image控件。我希望只有在<%#Eval("Image")%>不为null时才显示该控件。

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

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

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

有什么想法吗?:)

1个回答

14

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

<asp:Image runat="server" id="image" Visible='<%#Eval("Image") != null %>' />
如果您没有使用服务器控件且想要显示/隐藏简单的标记,您可以简单地将其包含在一个if语句中:
<% if ( condition ) { %>
    <img src='<%= linkToImageSource %>' />
<% } %>

@Mehrad Afshari,你认为你能提出其他建议吗?因为即使有条件,图像仍然会显示。 - Dot NET
1
@Sean 你在页面加载期间调用了 DataBind 吗?你确定表达式 Eval("Image") 是空的吗?我确信这个方法通常是有效的。 - Mehrdad Afshari
Eval("Image") 实际上并不会返回 null。它只是空白。但是与 " " 进行比较时仍然无法工作。 - Dot NET
我成功解决了这个问题,只需从代码后台访问中继器并在那里进行检查即可!其他用户可能会发现您的建议有帮助,所以我会接受它 :) - Dot NET

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接