zz历遍Page的Controls集合

时间:05/11/2006 16:30:00   作者:ChenReal    阅读:133

foreach(Control ctl in Page.Controls)
{
  Response.Write(\"<li>\"+ctl.ToString());
}

上述代码并不显示包含在页面内的所有控件列表,它只显示Page类的直接子控件,而不再显示这些子控件的任何子控件。如果要显示页面内的所有控件,就可以递归地遍历每个控件的Controls集合,如:

#region 清空指定页面上所有的控件内容,public static void ClearAllContent()
/// <summary>
/// 清空指定页面上所有的控件内容,包括TextBox,CheckBox,CheckBoxList,RadioButton,RadioButtonList。但是不清
/// 除如ListBox,DropDownList,因为这样的控件值对当前页面来说还可以用,一般这些控件里都是保存的字典数据。
/// </summary>
/// <param name=\"page\"> 指定的页面</param>
public static void ClearAllContent(System.Web.UI.Control page)
{
    int nPageControls = page.Controls.Count;
    for (int i = 0; i < nPageControls; i++)
    {
        foreach (System.Web.UI.Control control in page.Controls[i].Controls)
        {
            if (control.HasControls())
            {
                ClearAllText(control);
            }
            else
            {
                if (control is TextBox)
                    (control as TextBox).Text = \"\";

                if (control is CheckBox)
                    (control as CheckBox).Checked = false;

                if (control is RadioButtonList)
                    (control as RadioButtonList).SelectedIndex = -1;

                if (control is RadioButton)
                    (control as RadioButton).Checked = false;

                if (control is CheckBoxList)
                {
                    foreach (ListItem item in (control as CheckBoxList).Items)
                    {
                        item.Selected = false;
                    }
                }
            }//if..else
        }//foreach
    }//for
}
#endregion

 

评论
0/200