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

Jea*_*rdi 1 .net c# asp.net

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

<asp:HyperLink ImageUrl="/images/icons/rss.png" Visible="<%# ShowRssIcon %>" ID="FeedHyperLink" runat="server"></asp:HyperLink> 
Run Code Online (Sandbox Code Playgroud)

但是,即使ShowRssIcon为false,它也始终可见。ShowRssIcon是在用户控件上设置的简单属性。即使将ShowRssIcon设置为始终在显示的超链接中返回假结果。

但是,设置Visible="false"或Visible="true"手动按预期方式工作。同样,在on Page_Load事件后面的代码中设置属性也可以。

有任何想法吗?谢谢。

Muh*_*tar 5

由于<%# expressions是在DataBind()时间上评估的,因此如果您使用了该方法,则需要DataBind();像这样在PreRenderComplete中调用方法。

protected void Page_PreRenderComplete(object sender, EventArgs e)
{
    DataBind();
}
Run Code Online (Sandbox Code Playgroud)