如何将一个页面的所有控件设置为不可用状态?
1.如何将一个页面的所有控件设置为不可用状态,并且这些控件还是可见的。也就是说我不想让别人编辑但是可以然别人观看。
我用的如下的方法好像不行啊:
protected void Page_Load(object sender, EventArgs e)
{
foreach (Control c in this.Controls)
{
if(c is WebControl)
(c as WebControl).Enabled = false;
}
}
大家给我检查下,是什么地方出了问题啊。
2.还有另一个问题:有关页面的生命周期和控件的生命周期的一个问题,我自己制作了一个用户控件保存在a.ascx中,我又在b.aspx页面中加载它(b.aspx中创建了一个a.ascx类型的控件c),并且想在b.aspx页面的Page_Load事件中从数据库中读取数据,把读出来的数据加载到我的自定义控件c中。我弄的好像不行。是怎么回事这是?
[解决办法]
void DisableAllControl(Control c)
{
if(c is WebControl)
((WebControl)c).Enabled = false;
if(c.HasControls() == false;)
{
return;
}
foreach(Control child in c.Controls)
{
DisableAllControl(child);
}
}
DisableAllControl(this);