0

有没有办法找出 ASP.Net 应用程序的每个页面中使用的控件的数量?请帮忙

4

1 回答 1

1

你为什么需要它?首先定义控件,所有源自System.Web.UI.Control?

您可以编写一个递归扩展方法,它会延迟返回所有控件,那么它很简单:

protected void Page_PreRender(object sender, EventArgs e)
{
    var allControls = this.GetControlsRecursively().ToList();
}

这是一个可能的实现:

public static class ControlExtensions
{
    public static IEnumerable<Control> GetControlsRecursively(this Control parent)
    {
        foreach (Control c in parent.Controls)
        {
            yield return c;

            if (c.HasControls())
            {
                foreach (Control control in c.GetControlsRecursively())
                {
                    yield return control;
                }
            }
        }
    }
}
于 2013-02-15T08:34:42.977 回答