超链接可见性的ASP.NET声明性绑定不起作用

本文关键字:绑定 不起作用 声明 NET 可见性 ASP 超链接 | 更新日期: 2023-09-27 18:00:08

我在用户控件中有一个超链接,我想通过使用声明性属性来设置可见性,即

<asp:HyperLink ImageUrl="/images/icons/rss.png" Visible="<%# ShowRssIcon %>" ID="FeedHyperLink" runat="server"></asp:HyperLink> 

但是,即使ShowRssIcon为false,它也始终保持可见。ShowRssIcon是在用户控件上设置的一个简单属性。甚至将ShowRssIcon设置为在显示超链接时始终返回错误结果。

但是,手动设置Visible="false"Visible="true"可以按预期工作。此外,在Page_Load事件的代码隐藏中设置属性也可以。

有什么想法吗?谢谢

超链接可见性的ASP.NET声明性绑定不起作用

由于<%# expressions是在DataBind()时间求值的,如果您使用了它,那么您需要在PreRenderComplete调用DataBind();方法,如。。

protected void Page_PreRenderComplete(object sender, EventArgs e)
{
    DataBind();
}

您的代码段没有显示任何对DataBind的调用,所以您确定有调用吗?顺便说一句,如果这个超链接不在像ListView或GridView这样的数据绑定控件中,那么最好从代码后面设置属性。