在ASP.NET面板中查找所有控件?

bal*_*log 8 asp.net controls

我在我的页面中有许多面板,我正在收集用户信息并保存页面详细信息.页面面板包含文本框,下拉列表,列表框.

当我需要来到这个页面.如果这些控件有任何值,我需要显示Page.这该怎么做?

Cri*_*rdo 28

它归结为枚举控件层次结构中的所有控件:

    IEnumerable<Control> EnumerateControlsRecursive(Control parent)
    {
        foreach (Control child in parent.Controls)
        {
            yield return child;
            foreach (Control descendant in EnumerateControlsRecursive(child))
                yield return descendant;
        }
    }
Run Code Online (Sandbox Code Playgroud)

你可以像这样使用它:

        foreach (Control c in EnumerateControlsRecursive(Page))
        {
            if(c is TextBox)
            {
                // do something useful
            }
        }
Run Code Online (Sandbox Code Playgroud)

  • 精美的书面答案.清晰,简洁,直接,而且我需要花费更长的时间才能获得正确的代码.谢谢你,克里斯蒂安! (2认同)