清清楚楚asp.net ( 二 ) :Page類和作為控制項容器的頁面

來源:互聯網
上載者:User

一.Page類

所有頁面都繼承自Page類,同時頁面作為控制項對象被執行個體化,所以所有的web表單都是Page類的一個執行個體。

因此,每個被建立的空白頁面本身就已經實現了大量的功能。可以通過VS中的智能感知看到這些方法和屬性。

比如:FindControl,RegisterStartupScript方法; IsPostBack,Session,Application,Cache,Request,Response屬性等

值得注意的是,類似Session這些內建對象對應於Page類的一個屬性,它暴露具有完整功能類的執行個體。

例如:Session對象就是System.Web.SessionState.HttpSessionState類的執行個體。

二.作為控制項容器的頁面

web表單可以視為一個存放各種控制項的容器。而各種控制項本身也可以看作是一個存放其他控制項的容器。

比如有如下HTML:

<div>這是一段HTML</div>
<form id="form1" runat="server">
     <asp:Panel ID="Panel1" runat="server">
          <asp:LinkButton ID="LinkButton1" runat="server">LinkButton</asp:LinkButton>
          <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
     </asp:Panel>
     <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>    
</form>
<div>這是一段HTML</div>

 C#代碼:

    private void DisplayControls1()
    {
        foreach (Control control in this.Controls)
        {
            this.Response.Write(control.GetType().ToString() + "——<b>" + control.ID + "</b><br/>");
        }
    }

    private void DisplayControls2(ControlCollection controls, int depth)
    {
        foreach (Control control in controls)
        {
            Response.Write(new string('-', depth * 2) + ">");
            Response.Write(control.GetType().ToString() + "——<b>" + control.ID + "</b><br/>");
            if (control.Controls != null)
            {
                DisplayControls2(control.Controls, depth + 1);
            }
        }
    }

DisplayControl1()方法將不能完全頁面上的所有的伺服器控制項,它只遍曆了頁面容器中的第一層控制項。

除去Head以外,按順序將遍曆到如下控制項Literal——HtmlForm——Literal

asp.net對頁面使用控制項物件模型,會將HTML靜態內容塊建立成LiteralControl。

DisplayControl2()方法能夠遍曆出頁面上的所有伺服器端控制項,從代碼中可以看出,每個控制項本身也可以被視為一個容器。

Page類具有Controls屬性,Control類同樣具有Controls屬性。

 

 

清清楚楚asp.net系列學習部落格目錄 

 

參考資料:Pro ASP.NET 3.5 in C# 2008  

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.