为何我不能动态控制其是否显示呢?
比如如果我默认设置为
uc.Visable是true
然后在PageLoad里面设置:us.Visable = false;结果得到的页面上这个控件依然显示在那里,除非我把这个控件放到比如Panel这样的控件里,然后控制Panel...才能正常实现我要的效果..
这是为什么?难道自定义控件就是这样的?
还有div如果设置了runat= "server "的话,同样的方法页不能控制div的显示与否,我就比较奇怪了....
------解决方案--------------------------------------------------------
public override bool Visible { get; set; }
在set中写上逻辑,把要显示的东西去掉或者置空
------解决方案--------------------------------------------------------
/// <summary>
/// 设置控件是否呈现
/// </summary>
public bool Visible
{
get
{
//EnsureChildControls();
return (ViewState[ "AllVisible "] != null ? (bool)ViewState[ "AllVisible "] : true);
}
set
{
ViewState[ "AllVisible "] = value;
}
}
m_ddlArea.Style.Add( "Display ",(this.Visible == true ? " " : "none "));