首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> ASP.NET 基礎

遞迴輸出 ASP.NET 頁面所有控制項類型與 ID 的通用方法

     編輯:ASP.NET 基礎

通用遞迴方法

private void DisplayAllControl(Control parent, int depth)
{
    foreach (Control ctrl in parent.Controls)
    {
        string indent = new string('-', depth * 4);
        Response.Write($"{indent}{ctrl.GetType().Name}〈{ctrl.ID}〉<br/>");
        if (ctrl.HasControls())
            DisplayAllControl(ctrl, depth + 1);
    }
}

呼叫方式

protected void Page_Load(object sender, EventArgs e)
{
    DisplayAllControl(this.Page, 0);
}

輸出範例

Page〈〉----
----HtmlForm〈form1〉--------
--------LiteralControl〈〉------------
--------DropDownList〈DropDownList1〉------------
--------LiteralControl〈〉------------
--------Button〈Button1〉------------
--------Panel〈Panel1〉----------------
------------LiteralControl〈〉----------------
------------Label〈Label1〉----------------

適用範圍

  • 一般頁面
  • 母版頁面
  • 使用者控制項
  • GridView、Repeater 等資料控制項內部樣板

進階擴充建議

  • 加入 ClientID、UniqueID 輸出,利於前端除錯。
  • 輸出為 `
    • ` 巢狀結構,配合 CSS 可摺疊顯示。
    • 整合至基底頁面類別,所有頁面繼承即可用 DebugControls() 一鍵輸出。

    注意事項

    僅適用於伺服器端控制項樹。客戶端 DOM 結構可能因 Render 行為不同(如 `Visible=false` 不輸出)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved