我在usercontrol中有一个超链接,我希望通过声明属性设置可见性,即
<asp:HyperLink ImageUrl="/images/icons/rss.png" Visible="<%# ShowRssIcon %>" ID="FeedHyperLink" runat="server"></asp:HyperLink>
但是,即使ShowRssIcon为false,它仍然可见。 ShowRssIcon是usercontrol上的一个简单属性集。甚至将ShowRssIcon设置为始终返回false会显示超链接。
但是,手动设置Visible="false"
或Visible="true"
会按预期工作。此外,在Page_Load
事件后面的代码中设置属性也可以。
有什么想法吗?感谢。
答案 0 :(得分:4)
由于在<%# expressions
时评估了DataBind()
,如果您使用了DataBind();
,那么您需要在PreRenderComplete中调用protected void Page_PreRenderComplete(object sender, EventArgs e)
{
DataBind();
}
方法,如..
{{1}}
答案 1 :(得分:2)
您的代码段没有显示对DataBind的任何调用,所以您确定有一个吗?顺便说一句,如果这个超链接不在像ListView或GridView这样的数据绑定控件中,那么从后面的代码中设置属性要好得多。