ASP.Net/C#,循环浏览页面上的某些控件?

前端之家收集整理的这篇文章主要介绍了ASP.Net/C#,循环浏览页面上的某些控件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在循环浏览页面上的所有控件,并在某些条件下将某些类型(TextBox,CheckBox,DropDownList等)设置为Enabled = False.
但是我注意到这样一个明显的页面加载循环增加.是否有可能只从Page.Controls对象获取某些类型的控件而不是循环遍历它们?可能是像LINQ这样的东西?

解决方法

这不能完全使用LINQ完成,但您可以使用这样定义的扩展
static class ControlExtension
    {
        public static IEnumerable<Control> GetAllControls(this Control parent)
        {
            foreach (Control control in parent.Controls)
            {
                yield return control;
                foreach (Control descendant in control.GetAllControls())
                {
                    yield return descendant;
                }
            }
        }
    }

并打电话

this.GetAllControls().OfType<TextBox>().ToList().ForEach(t => t.Enabled = false);

猜你在找的asp.Net相关文章