枚举表单中的所有控件

时间:2010-12-01 05:25:40

标签: .net asp.net

private void EnableControls(bool enable)
        {
            foreach (TextBox t in Page.Form.Controls.OfType<TextBox>())
            {
                t.ReadOnly = !enable;
            }
            chkSameAsCurrent.Enabled = enable;
        }

上面的代码在一个没有任何母版页的简单页面中运行良好,但是如果我在ContentPage中运行它,我就无法枚举TextBoxes,甚至没有表单中的任何控件。

2 个答案:

答案 0 :(得分:2)

试试这个。我认为这应该有用。

 private void RecursiveLoopThroughControls(Control root)
 {
      foreach (Control control in root.Controls)
      {
          RecursiveLoopThroughControls(control);
          //process the control.
      }
 }

使用

调用方法
 RecursiveLoopThroughControls(Page)

答案 1 :(得分:0)

你绝对应该通过recursion来做到这一点。试试这个article。 如果要枚举母版页控件 - 请在Page.Master

中关注它们