如何从代码隐藏中选择性地或完全地启用/禁用asp.net表单/控件?
以下代码无效。因为在这种情况下没有Enabled属性。
public static void Disable(Page container)
{
for (int i = 0; i < container.Controls.Count; i++)
{
container.Form.Controls[i].Enabled = false;
}
}
答案 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,则不呈现服务器控件。在组织页面布局时,您应该考虑到这一点。