日期:2014-05-19  浏览次数:20432 次

自定义控件的问题..
为何我不能动态控制其是否显示呢?

比如如果我默认设置为
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 "));