LiteralControl ASP.NETの別のコントロール

4077 ワード

まずaspxファイルの一部を見てみましょう.
 
  



<br/> <br/> <br/><form id="form1" runat="server"> <br/></form> <br/> <br/> <br/> </code></pre> <br/> ASP.NET Dom , 、 。 Page, ,Page ? <br/> 5 , this.Page.Controls.Count 。 ? <br/> : >\r<br> <br/> : , HtmlHead; <br/> : \r<br>\\r<br>\t <br/> : <form id=" </form">, HtmlForm; <br/> : </form> \r<br> 。 <br/> Html , 、 、 ,ASP.NET LiteralControl。LiteralControl Web , Html , , HTML 、 ASP.NET 。 ,LiteralControl ASP.NET , 。 <br/> <strong> LiteralControl, :</strong> <br/>1. LiteralControl ID、ClientID UniqueID, 。 FindControl , ID 。 <br/>2. LitrelControl , EnableViewState , , 。 <br/>3. , LitrelControl 。 <br/>4. Text 。 <br/> <strong>.net LiteralControl </strong> <br/> LiteralControl , , , , 。 <br/> , <br/> <pre><code> <br/> <br/> <br/><title>












上記のコードは、最外層コントロールのすべてのタイプを読み込むときに使用します.
System.Web.UI.LiteralControl-
System.Web.UI.HtmlControls.HtmlHead-head1
System.Web.UI.LiteralControl-
System.Web.UI.HtmlControls.HtmlForm-form1
System.Web.UI.LiteralControl-
5つのコントロールが表示され、そのうち2つのサーバコントロールheadとformが表示されます.でも他の3つは何ですか?
実はとても簡単です:例を挙げて、もしページの上で1つのサーバーのコントロールがあるならば、ASP.Netは、このコントロールの前後の静的コンテンツを表す2つのLiteralControlオブジェクトを作成します.2つのサーバコントロールに対応するLiteralControlオブジェクトが3つあります.もう一つ例を見てみましょう
 
  





bogy343242








form

122233


表示外層のコントロールタイプとその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
この例では、2つのサーバコントロール間のテキストコントロールがこのような内容であることが明らかになった.
第二に、応用
LiteralControlクラス
HTML要素、テキスト、ASPを表す.NETページでサーバ上で処理する必要のない他の文字列.
ASP.NETは、サーバ側で処理する必要のないすべてのHTML要素と読み取り可能なテキストをクラスのインスタンスにコンパイルします.たとえば、runat=server属性/値ペアを開始タグに含まないHTML要素がLiteralControlオブジェクトにコンパイルされます.LiteralControlオブジェクトはビューの状態を維持しないため、LiteralControlオブジェクトのコンテンツはリクエストごとに再作成する必要があります.
テキストコントロールの動作は、テキストアクセラレータと同様です.これは、テキストコントロールからテキストを抽出し、親サーバーコントロールのControlプロパティを使用して親サーバーコントロールのControl Collectionセットからテキストコントロールを削除できることを意味します.したがって、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=""と書くのと同じであり,オブジェクト向けの考え方を用いたにすぎない.