ASP.NET中的另類控制項

來源:互聯網
上載者:User

標籤:blog   http   io   ar   strong   for   檔案   div   sp   

首先看一個aspx檔案裡的部分內容:

[html] view plaincopy 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head id="Head1" runat="server">  
  4.     <title></title>  
  5. </head>  
  6. <body>  
  7.     <form id="form1" runat="server">  
  8.     </form>  
  9. </body>  
  10. </html>  


我們知道ASP.NET會把這個文檔解析成類似Dom的控制項樹,控制項樹是分層、遞迴的。其中最頂層的是頁面Page,那麼現在要問,Page的下一層有多少個控制項?

答案是5個,可以輸出this.Page.Controls.Count的值驗證一下。它是怎麼解析的呢?

第一個:從<!DOCTYPE到transitional.dtd">\r\n

第二個:從<head id="Head1"到</head>,類型為HtmlHead;

第三個:包括</head>後面的\r\n\<body>\r\n\t

第四個:從<form id=到</form>,類型為HtmlForm;

第五個:從</form>後面的\r\n到最後。

其中第二個和第四個屬於Html控制項,而第一、三、五個則屬於靜態文本,ASP.NET將其解析成LiteralControl。LiteralControl既不是Web控制項,也不是Html控制項,自成一類,表示 HTML 元素、文本和 ASP.NET 頁中不需要在伺服器上處理的任何其他字串。幾乎可以說,LiteralControl是ASP.NET中肯定用到的控制項,只是你可能不知道而已。

關於LiteralControl,有幾點說明:

1. LiteralControl也可以有ID、ClientID和UniqueID,但一般很少用到。除了用FindControl方法外,給其設定ID沒有什麼意義。

2. LitrelControl不具有檢視狀態,雖然它也有一個EnableViewState屬性,但不起作用,回傳後先前更改的狀態必丟失。

3.由於表示的是靜態文本,所以無法為LitrelControl本身設定任何樣式。

4. 後台通過其Text屬性擷取和設定值。

ASP.NET中的另類控制項

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.