如何启用/禁用asp.net表单/控件

时间:2009-11-19 09:35:47

标签: c# asp.net .net-2.0

如何从代码隐藏中选择性地或完全地启用/禁用asp.net表单/控件?

以下代码无效。因为在这种情况下没有Enabled属性。

public static void Disable(Page container)
{
    for (int i = 0; i < container.Controls.Count; i++)
    {
        container.Form.Controls[i].Enabled = false;
    }
}

2 个答案:

答案 0 :(得分:6)

只有从WebControl继承的控件才具有Enabled属性。所以你可以在你的循环中做这样的事情:

var webControl = container.Form.Controls[i] as WebControl;
if(webControl != null) {
    webControl.Enabled=false;
}

答案 1 :(得分:1)

您可以使用Visible代替Enabled。 ASP.NET框架不会调用Visible属性设置为false的控件的Render方法。

来自文档:

  

如果此属性为false,则不呈现服务器控件。在组织页面布局时,您应该考虑到这一点。