遍历页面控件
普通aspx頁面:
頁面所有元素 <%@?Page?Language="C#"?AutoEventWireup="true"?CodeBehind="Default.aspx.cs"?Inherits="Web._Default"?%><!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html?xmlns="http://www.w3.org/1999/xhtml"?>
<head?runat="server">
????<title>Controls</title>
</head> System.Web.UI.LiteralControl-
System.Web.UI.HtmlControls.HtmlHead-
System.Web.UI.LiteralControl-
System.Web.UI.HtmlControls.HtmlForm-form1
System.Web.UI.LiteralControl-
?
<body>
????<form?id="form1"?runat="server">
????<div>
????????<asp:Button?ID="Button1"?runat="server"?Text="Button"?/>
????????<asp:LinkButton?ID="LinkButton1"?runat="server">LinkButton</asp:LinkButton>
????????<asp:TextBox?ID="TextBox1"?runat="server"></asp:TextBox>
????????<asp:Label?ID="Label1"?runat="server"?Text="Label"></asp:Label>
????</div>
????</form>
</body>
</html>
?
?
呈現(xiàn)最頂層控件元素代碼
foreach?(Control?control?in?Page.Controls){
????Response.Write(control.GetType().ToString()?+?"-<b>"?+?control.ID?+?"</b><br/>");
}
??
顯示結果(不包含子控件)
System.Web.UI.LiteralControl-System.Web.UI.HtmlControls.HtmlHead-
System.Web.UI.LiteralControl-
System.Web.UI.HtmlControls.HtmlForm-form1
System.Web.UI.LiteralControl-
?
?
取頁面所有控件元素,包含子控件
取頁面所有控件元素 ????????protected?StringBuilder?conInfo?=?new?StringBuilder();????????protected?void?Page_Load(object?sender,?EventArgs?e)
????????{
????????????if?(!Page.IsPostBack)
????????????{
????????????????outputControl(Page.Controls,?0);
????????????}
????????????Response.Write(conInfo.ToString());
????????}
????????protected?void?outputControl(ControlCollection?controls,?int?depth)
????????{
????????????foreach?(Control?control?in?controls)
????????????{
????????????????conInfo.Append(string.Format("<br/>{0}>",?new?string('-',?depth?*?4)));
????????????????conInfo.Append(string.Format("{0}(<b>編號:{1}</b>)",?control.GetType().ToString(),control.ID));
????????????????if?(control.Controls.Count>0&&control.Controls!=null)
????????????????{
????????????????????conInfo.Append(string.Format("(擁有{0}個子控件)",?control.Controls.Count));
????????????????????outputControl(control.Controls,?depth?+?1);
????????????????}
????????????}???
????????}
?
?
顯示結果
呈現(xiàn)頁面所有控件元素 >System.Web.UI.LiteralControl(編號:)>System.Web.UI.HtmlControls.HtmlHead(編號:)(擁有1個子控件)
---->System.Web.UI.HtmlControls.HtmlTitle(編號:)
>System.Web.UI.LiteralControl(編號:)
>System.Web.UI.HtmlControls.HtmlForm(編號:form1)(擁有9個子控件)
---->System.Web.UI.LiteralControl(編號:)
---->System.Web.UI.WebControls.Button(編號:Button1)
---->System.Web.UI.LiteralControl(編號:)
---->System.Web.UI.WebControls.LinkButton(編號:LinkButton1)
---->System.Web.UI.LiteralControl(編號:)
---->System.Web.UI.WebControls.TextBox(編號:TextBox1)
---->System.Web.UI.LiteralControl(編號:)
---->System.Web.UI.WebControls.Label(編號:Label1)
---->System.Web.UI.LiteralControl(編號:)
>System.Web.UI.LiteralControl(編號:)?
?
?
?
?
?
轉載于:https://www.cnblogs.com/_dragon/archive/2010/01/25/1656286.html
總結
- 上一篇: LBWE 和SBIW的关系
- 下一篇: 《大道至简》一书第三版,与编辑就本书写作