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

<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事件后面的代码中设置属性也可以。

有任何想法吗?谢谢。

最佳答案

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

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

09-26 12:49