技术开发 频道

遍历Page的Controls集合


【IT168技术文档】

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
相关文章