一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - LiteralControl ASP.NET中的另類控件

LiteralControl ASP.NET中的另類控件

2019-09-28 12:01asp.net開發網 ASP.NET教程

對于LiteralControl控件的應用比較少,今天突然看到了,就弄個明白為好,所以總結出來,供大家一起學習

首先看一個aspx文件里的部分內容: 

復制代碼代碼如下:


<!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 id="Head1" runat="server"> 
<title></title> 
</head> 
<body> 
<form id="form1" runat="server"> 
</form> 
</body> 
</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屬性獲取和設置值。 
.net LiteralControl詳解 
對于LiteralControl控件的應用比較少,今天突然看到了,就弄個明白為好,所以總結出來,供大家一起學習。 
第一,自己做測試 

復制代碼代碼如下:


<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server" id="head1"> 
<title >無標題頁</title> 
</head> 
<body id="body1"> 
<form id="form1" runat="server"> 
<div id="div1"> 
<div id="div2"> 
</div> 
</asp:Panel> 
</div> 
</form> 
</body> 
</html> 


以上代碼在讀取最外層控件所有類型時: 
System.Web.UI.LiteralControl- 
System.Web.UI.HtmlControls.HtmlHead-head1 
System.Web.UI.LiteralControl- 
System.Web.UI.HtmlControls.HtmlForm-form1 
System.Web.UI.LiteralControl- 
可以看到有五個控件,其中兩個服務器控件head和form。但是別的三個又是什么呢? 
其實很簡單:舉個例子,如果頁面上有一個服務器控件,ASP.net將會創建兩個LiteralControl對象,分別代表這個控件之前和之后的靜態內容。兩個服務器控件,相應的就有三個LiteralControl對象。再看個例子 

復制代碼代碼如下:


<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server" id="head1"> 
<title >無標題頁</title> 
</head> 
<body id="body1"> 
bogy343242 
<form id="form1" runat="server"> 
<div id="div1"> 
<asp:Panel ID="Panel1" runat="server" Height="50px" Width="125px"> 
<div id="div2"> 
</div> 
</asp:Panel> 
</div> 
</form> 
這應該是form結束的地方 
</body> 
122233 
</html> 


顯示外層的控件類型及其ID(LiteralControl顯示其中的HTML文本)如下: 
System.Web.UI.LiteralControl- 
***text: 1231232321 html23232 
System.Web.UI.HtmlControls.HtmlHead-head1 
System.Web.UI.LiteralControl- 
***text: /headerefefe bogy343242 
System.Web.UI.HtmlControls.HtmlForm-form1 
System.Web.UI.LiteralControl- 
***text: 這應該是form結束的地方 122233 5556665 
這個例子很明顯的說明,在兩個服務器控件之間的文本控件就是這樣的內容。 
第二,應用 
LiteralControl 類 
表示 HTML 元素、文本和 ASP.NET 頁中不需要在服務器上處理的任何其他字符串。 
ASP.NET 將所有不需要服務器端處理的 HTML 元素和可讀文本編譯為該類的實例。例如,在開始標記中不包含 runat="server" 屬性/值對的 HTML 元素將被編譯為 LiteralControl 對象。LiteralControl 對象不維護視圖狀態,因此必須針對每個請求重新創建 LiteralControl 對象的內容。 
文本控件的行為與文本容納器一樣,這意味著可以從文本控件提取文本,并通過父服務器控件的 Controls 屬性從父服務器控件的 ControlCollection 集合中移除文本控件。因此,當開發從 LiteralControl 類派生的自定義控件時,確保由控件自己執行任何所需的預處理步驟,而不是使用對 LiteralControl.Render 方法的調用來完成這些操作。通常,都會這樣做以提高 Web 應用程序的響應時間。 
可以以編程方式分別使用 ControlCollection.Add 或 ControlCollection.Remove 方法,從頁或服務器控件添加或移除文本控件。 
代碼: 

復制代碼代碼如下:


HtmlTableCell c = new HtmlTableCell(); 
c.Controls.Add( new LiteralControl("行 " + j.ToString() + ", 列 " + i.ToString()) ); 
r.Cells.Add(c); 


這樣做的目的就是為了提高web應用程序的響應時間,其實質跟寫成c.InnerHTML=""是一樣的,不過就是套用了面向對象的思想而已。 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 午夜福利在线观看6080 | 天天干夜夜噜 | 色婷婷网| 国产精品嫩草影院一二三区入口 | 久久精品国产在热亚洲完整版 | 欧美色精品天天在线观看视频 | 大象传媒2021秘密入口 | 欧美日韩国产在线人成 | 日韩欧美高清一区 | 国产肥女bbwbbw| 国产自产2023最新麻豆 | 无人区乱码1区2区3区网站 | 沉香如屑西瓜视频免费观看完整版 | 国产福利在线免费观看 | 亚洲精品久久久久AV无码 | 视频在线观看大片 | 亚裔maricahase和黑人 | 花唇肿胀无法合拢双性 | 福利一区在线观看 | 99 久久99久久精品免观看 | 色哟约 | 国产情侣啪啪 | 好男人在线观看hd中字 | 欧美在线播放一区二区 | 国产卡一卡二卡三卡四 | 校花被扒开尿口折磨憋尿 | chaopeng在线视频进入 | 国产精品久线观看视频 | 99久久爱热6在线播放 | 毛片在线播放a | 99久久精品无码一区二区毛片 | 久久99精品久久久久久园产越南 | 天天操丝袜 | 国产一区二区在线观看美女 | 四虎永久网址在线观看 | 亚洲+国产+图片 | 日韩中文字幕在线不卡 | 5555国产在线观看精品 | 视频在线观看一区二区三区 | 亚洲一成人毛片 | 四虎影视在线看免费 720p |